CVE-2026-89732

Naməlum

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: usb: gadget: f_fs: ep0 oxuma dövrü zamanı deadlock-un qarşısının alınması Hazırda ffs_ep0_read() funksiyası hadisəni gözləyərək yuxuya getməyə hazırlaşarkən ffs->mutex kilidini saxlayır. Heç bir quraşdırma (setup) hadisəsi gözlənilmədikdə, o, mutex hələ də tutulmuş halda wait_event_interruptible_exclusive_locked_irq() funksiyasını çağırır. Gözləmə makrosu yuxuya getməzdən əvvəl waitqueue spinlock-unu qəsdən buraxır, lakin mutex-i buraxmır. Əgər istifadəçi sahəsi (userspace) demonu read() vasitəsilə ep0-nı sorğulayırsa və gadget configfs vasitəsilə asinxron şəkildə sökülürsə (məsələn, echo "" > UDC), deadlock baş verə bilər: 1. Configfs sökülməsi FUNCTIONFS_UNBIND hadisəsini növbəyə düzən functionfs_unbind() funksiyasını çağırır. 2. Demon oyanır, hadisəni emal edir və mutex-i buraxır. 3. Lakin, əgər demon çıxış etməzdən əvvəl dövrə girib dərhal növbəti read() sorğusunu göndərərsə, o, ffs->mutex-i yenidən əldə edir və yenidən kəsilə bilən (interruptible) yuxuya gedir. 4. Bu arada, functionfs_unbind() icranı davam etdirir və ep0req-i sökmək üçün ffs->mutex-i əldə etməyə çalışır. 5. Nüvədə deadlock yaranır, çünki configfs axını mutex-i gözləyərək kəsilə bilməyən (uninterruptible) yuxuda qalır, istifadəçi sahəsi demonu isə artıq heç bir hadisə gəlməyəcəyi üçün mutex-i sonsuz müddətə tutaraq kəsilə bilən yuxuda qalır. Bunu düzəltmək üçün yuxuya getməzdən əvvəl həm waitqueue spinlock-unu, həm də ffs->mutex-i buraxırıq və bunun əvəzinə wait_event_interruptible_exclusive() funksiyasından istifadə edirik. Oyanarkən, mutex-i təhlükəsiz şəkildə yenidən əldə etmək və vəziyyət maşınını (state machine) yenidən qiymətləndirmək üçün `retry` etiketine geri qayıdırıq. ffs->mutex tutulmuş halda yuxuya getməməklə, biz gadget sökülmələrini (hansı ki, mutex tələb edir) istifadəçi sahəsi sorğularından təbii şəkildə ayırırıq.

CiddilikNaməlum
CVSS—
İstismar ehtimalı—
MəhsulLinux
Dərc11 sen 2026
İlk görülmə11 sen 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linuxfbe3db4b650c284df8eb4cb68eebcf270cf861b5, 30430509c156e1df2bdafd5f1cadb160e53db5d6, bafddd0f20b5228760be303aa69c58502e92309c, b0a6bfac0c3c3edf5b2ecaee87a09234601fe78d, fd20cc68bbdb5620696ac108e8f2efd180fe2c1a, 34e88f53614640b59039a46717fb6142e9871022, eac233e63f9db82ba874e3cccafaafab162999e0, 569dd7e5dcffe1e1c6b26ca2cd3be57eb433e082 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
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

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-89732 · Linux · Dark Radar