CVE-2026-89732

Belirsiz

Açıklama

Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: usb: gadget: f_fs: ep0 okuma döngüsü sırasında deadlock oluşmasını önleme Şu anda ffs_ep0_read(), bir olay beklemek için uyku moduna geçmeye hazırlandığında ffs->mutex kilidini tutmaktadır. Bekleyen herhangi bir kurulum olayı olmadığında, mutex hala tutulurken wait_event_interruptible_exclusive_locked_irq() fonksiyonunu çağırır. Bekleme makrosu, uyumadan önce waitqueue spinlock kilidini kasıtlı olarak bırakır ancak mutex kilidini bırakmaz. Eğer bir kullanıcı alanı (userspace) daemon'ı read() aracılığıyla ep0'ı sorguluyorsa ve gadget, configfs üzerinden asenkron olarak kaldırılıyorsa (örneğin, echo "" > UDC), bir deadlock meydana gelebilir: 1. configfs kaldırma işlemi, FUNCTIONFS_UNBIND olayını kuyruğa alan functionfs_unbind() fonksiyonunu çağırır. 2. Daemon uyanır, olayı tüketir ve mutex kilidini bırakır. 3. Ancak, eğer daemon çıkış yapmadan önce döngüye girerse ve hemen başka bir read() işlemi başlatırsa, ffs->mutex kilidini yeniden alır ve tekrar kesilebilir (interruptible) uykuya geçer. 4. Bu sırada, functionfs_unbind() yürütülmeye devam eder ve ep0req'i kaldırmak için ffs->mutex kilidini almaya çalışır. 5. Kernel deadlock durumuna düşer; çünkü configfs iş parçacığı mutex kilidini beklerken kesilemez (uninterruptible) uykuda takılır, kullanıcı alanı daemon'ı ise artık hiçbir olay gelmeyeceği için mutex kilidini sonsuza dek tutarak kesilebilir uykuda kalır. Bunu düzeltmek için, uykuya geçmeden önce hem waitqueue spinlock hem de ffs->mutex kilitlerini bırakıyoruz ve bunun yerine wait_event_interruptible_exclusive() kullanıyoruz. Uyandığımızda, mutex kilidini güvenli bir şekilde yeniden almak ve durum makinesini yeniden değerlendirmek için `retry` etiketine geri dönüyoruz. ffs->mutex tutulurken uyumayarak, gadget kaldırma işlemlerini (mutex gerektiren) kullanıcı alanı sorgulamalarından doğal olarak ayırmış oluyoruz.

ÖnemBelirsiz
CVSS—
İstismar olasılığı—
ÜrünLinux
Yayın11 Eyl 2026
İlk görülme11 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linuxfbe3db4b650c284df8eb4cb68eebcf270cf861b5, 30430509c156e1df2bdafd5f1cadb160e53db5d6, bafddd0f20b5228760be303aa69c58502e92309c, b0a6bfac0c3c3edf5b2ecaee87a09234601fe78d, fd20cc68bbdb5620696ac108e8f2efd180fe2c1a, 34e88f53614640b59039a46717fb6142e9871022, eac233e63f9db82ba874e3cccafaafab162999e0, 569dd7e5dcffe1e1c6b26ca2cd3be57eb433e082 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < fbe3db4b650c284df8eb4cb68eebcf270cf861b5, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < 30430509c156e1df2bdafd5f1cadb160e53db5d6, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < bafddd0f20b5228760be303aa69c58502e92309c, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < b0a6bfac0c3c3edf5b2ecaee87a09234601fe78d, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < fd20cc68bbdb5620696ac108e8f2efd180fe2c1a, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < 34e88f53614640b59039a46717fb6142e9871022, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < eac233e63f9db82ba874e3cccafaafab162999e0, ddf8abd2599491cbad959c700b90ba72a5dce8d0 ≤ v < 569dd7e5dcffe1e1c6b26ca2cd3be57eb433e082, 2.6.35fbe3db4b650c284df8eb4cb68eebcf270cf861b5, 30430509c156e1df2bdafd5f1cadb160e53db5d6, bafddd0f20b5228760be303aa69c58502e92309c, b0a6bfac0c3c3edf5b2ecaee87a09234601fe78d, fd20cc68bbdb5620696ac108e8f2efd180fe2c1a, 34e88f53614640b59039a46717fb6142e9871022, eac233e63f9db82ba874e3cccafaafab162999e0, 569dd7e5dcffe1e1c6b26ca2cd3be57eb433e082

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-2026-89732 · Linux · Dark Radar