CVE-2026-74506
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: afs: Mesaj gönderimi sırasında oluşan UAF hatası düzeltildi afs_make_call() fonksiyonunda, asenkron çağrı alımı ve imhası arasında bir yarış durumu (race condition) bulunmaktadır. Eğer call->write_iter değeri ayarlanmamış bir çağrı gönderilirse (FS.StoreData için veri içeriğini belirtmek amacıyla kullanılır), ilk rxrpc_kernel_send_data() işlemi msghdr içinde MSG_MORE değerini ayarlamayacaktır. rxrpc_send_data() son istek paketini kuyruğa aldığında, yanıt herhangi bir zamanda gelebilir ve çağrının tamamlanıp serbest bırakılmasına (put) neden olabilir. Ancak afs_make_call(), ->write_iter işleminin ele alınması gerekip gerekmediğini görmek için çağrıya tekrar bakacaktır; bunu yapabilmesi için ise çağrı üzerinde kendi referansına sahip olması gerekir. Bu durum senkron çağrılar için geçerli olsa da, FS.FetchData gibi asenkron çağrılar için geçerli değildir. Ayrıca, asenkron bir çağrı gönderilirken çağrının bir şekilde başarısız olması durumunda (örneğin sunucu tarafından iptal edilmesi), afs_make_call() içerisinde potansiyel bir UAF riski bulunmaktadır. Buradaki sorun, rxrpc gönderimi başarısız olduğunda afs_make_call()'un çağrıyı iptal etmeye çalışmasıdır, ancak rxrpc'den gelen asenkron bildirim afs_call'un yıkılmasına neden olmuş olabilir. generic/650, CPU'ları rastgele çevrimdışı yaparak işlemler yürütür ve afs_make_call() call->write_iter kontrolünü yapmadan önce çağrının bellekten boşaltılmasına yol açacak önemli bir gecikme ekleyebilir; bu da (KASAN tarafından yakalanan) bir UAF ile sonuçlanır. BUG: KASAN: slab-use-after-free in afs_make_call+0x1c90/0x2210 [kafs] Read of size 8 at addr ffff888035e050e8 by task fsstress/1409 Bu sorun, afs_make_op_call()'un çağıranın referansını aktarmak yerine op->call'a kendi referansını vermesi ve ardından afs_make_call() döndüğünde referansı düşürmesi sağlanarak düzeltilmiştir. Bu değişiklik aynı zamanda afs_make_call() fonksiyonunun artık çağrı üzerindeki referansını hiçbir zaman kaybetmemesi anlamına gelmektedir.
Nasıl düzeltilir
- Linux Linuxcbb0d3da042c01082f40166fdc99bf1752db72be, c0d3b81f703b2a9e37fe1347610a50cdf0078c27, daaa726b14fc3026a6b328614d312b698f62f391, 4af1ec68d54b3871155914d584fb10669c41a861 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | e49c7b2f6de7ff81ca34c56e4eeb4fa740c099f2 ≤ v < cbb0d3da042c01082f40166fdc99bf1752db72be, e49c7b2f6de7ff81ca34c56e4eeb4fa740c099f2 ≤ v < c0d3b81f703b2a9e37fe1347610a50cdf0078c27, e49c7b2f6de7ff81ca34c56e4eeb4fa740c099f2 ≤ v < daaa726b14fc3026a6b328614d312b698f62f391, e49c7b2f6de7ff81ca34c56e4eeb4fa740c099f2 ≤ v < 4af1ec68d54b3871155914d584fb10669c41a861, 5.8 | cbb0d3da042c01082f40166fdc99bf1752db72be, c0d3b81f703b2a9e37fe1347610a50cdf0078c27, daaa726b14fc3026a6b328614d312b698f62f391, 4af1ec68d54b3871155914d584fb10669c41a861 |
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.