CVE-2025-40303

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: btrfs: hatalı bir fs için kirli meta verilerin geri yazılmadığından emin olun [HATA] Küçük bir özelliğin geliştirilmesi sırasında (tüm btrfs_bio::end_io() çağrılarının görev bağlamında yapıldığından emin olmak), btrfs_stop_all_workers() sonrası meta veri yazmalarının yeni işleri tetiklediği generic/388 testinde bir çökme fark ettim. Herhangi bir kod değişikliği olmasa bile, sadece meta veriler için RAID5 kullanıldığında ve generic/388 ile aynı iş yükü uygulandığında serbest bırakıldıktan sonra kullanım (use-after-free) durumunun tetiklenebildiği görülmüştür. [NEDEN] btrfs bir hata ile karşılaştığında, fs hata olarak işaretlenir, yeni işlemlere izin verilmez ve böylece meta veriler dondurulmuş durumda kalır. Ancak bu hatadan önce bazı meta veri değişiklikleri gerçekleşmiş olabilir ve bunlar hala btree inode sayfa önbelleğinde (page cache) bulunur. Gerçek bir işlem onaylaması (transaction commit) olmayacağı için tüm bu kirli folio'lar sayfa önbelleğinde olduğu gibi tutulur ve kirli oldukları için close_ctree() içindeki invalidate_inode_pages2() çağrısı tarafından geçersiz kılınamazlar. Son olarak btrfs_stop_all_workers() işleminden sonra, btree inode üzerinde iput() çağrılır ve bu da söz konusu kirli meta verilerin geri yazılmasını (writeback) tetikler. Eğer fs, RAID56 meta verilerini kullanıyorsa, bu durum RMW'yi tetikler ve zaten durdurulmuş olan rmw_workers kuyruğuna yeni işler ekler; bu da queue_work() kaynaklı uyarıya ve serbest bırakıldıktan sonra kullanım (use-after-free) hatasına yol açar. [ÇÖZÜM] write_one_eb() için özel bir işlem eklenerek, eğer fs zaten bir hata durumundaysa, bbio'ların gerçekten gönderilmesi yerine derhal başarısız olarak işaretlenmesi sağlanmıştır. Böylece close_ctree() sırasında iput(), tüm bu kirli ağaç bloklarını gerçekten geri yazmadan atacak ve haliyle çoktan durdurulmuş ve serbest bırakılmış iş kuyrukları için yeni işler oluşmayacaktır. write_one_eb() içerisindeki ekstra atma işlemi aynı zamanda ek bir güvenlik ağı görevi görür. Örneğin, işlem iptali bazı extent/boş alan ağacı bozulmaları nedeniyle tetiklendiyse ve extent/boş alan ağacı zaten bozuksa, bazı ağaç blokları olmamaları gereken yerlere tahsis edilmiş olabilir (mevcut ağaç bloklarının üzerine yazılarak). Bu durumda bunları geri yazmak, fs'nin daha fazla bozulmasına neden olacaktır.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux
Yayın8 Ara 2025
İlk görülme8 Ara 2025

Nasıl düzeltilir

Güncelleyin
  • Linux Linux066ee13f05fbd82ada01883e51f0695172f98dff, e2b3859067bf012d53c49b3f885fef40624a2c83, 54a5b5a15588e3b0b294df31474d08a2678d4291, 2618849f31e7cf51fadd4a5242458501a6d5b315 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux13e6c37b989859e70b0d73d3f2cb0aa022159b17 ≤ v < 066ee13f05fbd82ada01883e51f0695172f98dff, 13e6c37b989859e70b0d73d3f2cb0aa022159b17 ≤ v < e2b3859067bf012d53c49b3f885fef40624a2c83, 13e6c37b989859e70b0d73d3f2cb0aa022159b17 ≤ v < 54a5b5a15588e3b0b294df31474d08a2678d4291, 13e6c37b989859e70b0d73d3f2cb0aa022159b17 ≤ v < 2618849f31e7cf51fadd4a5242458501a6d5b315, 3.10066ee13f05fbd82ada01883e51f0695172f98dff, e2b3859067bf012d53c49b3f885fef40624a2c83, 54a5b5a15588e3b0b294df31474d08a2678d4291, 2618849f31e7cf51fadd4a5242458501a6d5b315

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2025-40303 · Linux · Dark Radar