CVE-2025-40306
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: orangefs: xattr ile ilgili arabellek taşması düzeltildi... Willy Tarreau <[email protected]>, Disclosure <[email protected]> adresinden gelen şu uyarıyı içeren bir mesajı bana iletti: > `xattr_key()` yardımcı fonksiyonu, döngü koşulunda işaretçiyi çözmek yerine doğrudan işaretçi değişkenini kullanıyor. `key` artırıldıkça, (eşlenmemiş belleğe rastlayana kadar) NULL olmayan değerini korur; bu nedenle döngü geçerli C dizilerinde sonlanmaz ve bellek üzerinde süresiz olarak ilerleyerek CPU tüketimine veya iş parçacığının asılı kalmasına neden olur. Bunu setfattr ve getfattr ile kolayca yeniden ürettim; bu durum kernel oops hatasına, kullanıcı süreçlerinin asılı kalmasına ve orangefs dosyalarının bozulmasına yol açtı. Disclosure, önerilen bir düzeltmeyi içeren bir diff (yama değil) gönderdi ve ben bu yamayı ona dayandırdım. xattr_key doğru çalışmaya başladıktan sonra, xfstest generic/069 testi, OOM'ye yol açan xattr ile ilgili bir bellek sızıntısını ortaya çıkardı. xattr_key özetlenmiş (hashed) bir anahtar döndürür. orangefs xattr önbelleğine xattr eklerken, bir kernel özetleme makrosu olan hash_add kullanıyordu. hash_add ayrıca anahtarı hash_log kullanarak tekrar özetlediği için xattr önbelleğine yapılan eklemeler yanlış hash kovasına gidiyordu. generic/069 tek bir dosya üzerinde yoğun işlem yapar ve orangefs her seferinde "security.capability" xattr'ı için bir getattr işlemi gerçekleştirir. Orangefs, içinde kmalloc barındıran xattr negatif önbelleklemesi yapar. xattr önbelleğine eklemeler yanlış kovaya gittiği için, "security.capability" için yapılan her getattr işlemi başka bir kmalloc ile sonuçlandı ve bunların hiçbiri serbest bırakılmadı. hash_add'in iki kullanımını hlist_add_head ile değiştirdim; böylece bellek sızıntısı durdu ve generic/069 hata vermeyi bıraktı.
Nasıl düzeltilir
- Linux Linuxc6564ff6b53c9a8dc786b6f1c51ae7688273f931, ef892d2bf4f3fa2c8de1677dd307e678bdd3d865, 15afebb9597449c444801d1ff0b8d8b311f950ab, bc812574de633cf9a9ad6974490e45f6a4bb5126, e09a096104fc65859422817fb2211f35855983fe, 9127d1e90c90e5960c8bc72a4ce2c209691a7021, c2ca015ac109fd743fdde27933d59dc5ad46658e, 025e880759c279ec64d0f754fe65bf45961da864 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < c6564ff6b53c9a8dc786b6f1c51ae7688273f931, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < ef892d2bf4f3fa2c8de1677dd307e678bdd3d865, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < 15afebb9597449c444801d1ff0b8d8b311f950ab, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < bc812574de633cf9a9ad6974490e45f6a4bb5126, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < e09a096104fc65859422817fb2211f35855983fe, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < 9127d1e90c90e5960c8bc72a4ce2c209691a7021, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < c2ca015ac109fd743fdde27933d59dc5ad46658e, f7ab093f74bf638ed98fd1115f3efa17e308bb7f ≤ v < 025e880759c279ec64d0f754fe65bf45961da864, 4.6 | c6564ff6b53c9a8dc786b6f1c51ae7688273f931, ef892d2bf4f3fa2c8de1677dd307e678bdd3d865, 15afebb9597449c444801d1ff0b8d8b311f950ab, bc812574de633cf9a9ad6974490e45f6a4bb5126, e09a096104fc65859422817fb2211f35855983fe, 9127d1e90c90e5960c8bc72a4ce2c209691a7021, c2ca015ac109fd743fdde27933d59dc5ad46658e, 025e880759c279ec64d0f754fe65bf45961da864 |
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.
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.