CVE-2026-64584

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: usb: gadget: f_midi: midi obyekti azad edilməzdən əvvəl gözləyən IN işini ləğv edin f_midi drayveri bir iş elementini (midi->work) daxil edir və onun idarəçisi olan f_midi_in_work(), container_of() vasitəsilə onu əhatə edən struct f_midi strukturuna müraciət edir. Bu iş iki yerdən aktivləşdirilir: normal IN-son nöqtəsinin tamamlanması zamanı f_midi_complete() və ALSA rawmidi çıxış axınının başlaması zamanı f_midi_in_trigger(). Nə f_midi_disable(), nə də f_midi_unbind() midi->work elementini ləğv etmir. f_midi_disable() yalnız son nöqtələri deaktiv edir və in_req_fifo-nu boşaldır; o, iş elementini sinxronlaşdırmır və səs kartı midi obyektinin yekun azad edilməsindən asinxron şəkildə buraxılır. Midi obyekti istinad saylıdır (midi->free_ref) və həm usb_function istinadı, həm də rawmidi private_data istinadı ləğv edildikdən sonra yalnız f_midi_free() funksiyasında azad edilir. f_midi_unbind() funksiyasında f_midi_disable() səs kartı buraxılmazdan əvvəl işə düşür, buna görə də USB son nöqtələri artıq deaktiv olsa da, rawmidi cihazı açıq alt-axın tərəfindən hələ də istifadə edilə bilər. Belə bir alt-axında eyni vaxtda baş verən istifadəçi sahəsi yazma əməliyyatı f_midi_in_trigger() funksiyasına çata bilər və f_midi_disable() geri döndükdən sonra midi->work elementini yenidən növbəyə ala bilər. Bu şəkildə aktivləşdirilmiş iş elementi, sonuncu istinad ləğv edilib f_midi_free() kfree(midi) prosesinə keçdikdə hələ də gözləyən vəziyyətdə ola bilər ki, bu da f_midi_in_work() funksiyasının struktur azad edildikdən sonra ona müraciət etməsinə səbəb olur (use-after-free). Bu səbəbdən, f_midi_disable() funksiyasında midi->work elementinin ləğv edilməsi kifayət etməzdi: ALSA tetikləmə yolu disable() geri döndükdən sonra işi yenidən aktivləşdirə bilər. İstinad sayının sıfır olduğu azad etmə mərhələsində ləğv etmə, heç bir aktivləşdirmə mənbəyinin mövcud ola bilməyəcəyi sərhəddir, çünki həmin vaxta qədər midi obyektini saxlayan hər iki istinad ləğv edilmiş olur: USB son nöqtələri artıq deaktiv edilib və rawmidi cihazı buraxılıb. Bunu, f_midi_free() funksiyasının istinad sayının sıfır olduğu blokunda, daxili work_struct strukturu digər hissələrlə birlikdə azad edilməzdən əvvəl cancel_work_sync(&midi->work) çağıraraq düzəldin. opts->lock yuxulama mutexidir, buna görə də onun altında cancel_work_sync() çağırmaq icazəlidir və idarəçi opts->lock yerinə midi->transmit_lock-u götürür, beləliklə, işin işləyən nüsxəsinin bitməsini gözləyərkən özü ilə deadlock (ölü kilidlənmə) baş vermir. Bu problem daxili statik analiz aləti tərəfindən aşkar edilmişdir.

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux
Dərc6 avq 2026
İlk görülmə6 avq 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linuxf3c6f2c38062703d3dc7f86958bb0790c6959add, df18150126f66817e4d3f79f309e9c92d6ff384e, 620955b222c47332297d6bf38f78541aa699238a, 380b4bef46c2eb260c7a9c6bb2c5be33ce5a38f9, 87bc316dd6fc90072297c635e10b9aa6075ecda1, f45089eaad0a083d71d84ff175741d7e157d9b69, ac9a51d910bb7465c554c45320cb6c09f3d0b49d, 5650c18d93a1db7e27cb5a40b394747eb4686d5b, 5.10.265, 5.5 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux3635523e9b96213969693c320302d536774d8e9b ≤ v < f3c6f2c38062703d3dc7f86958bb0790c6959add, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < df18150126f66817e4d3f79f309e9c92d6ff384e, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < 620955b222c47332297d6bf38f78541aa699238a, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < 380b4bef46c2eb260c7a9c6bb2c5be33ce5a38f9, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < 87bc316dd6fc90072297c635e10b9aa6075ecda1, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < f45089eaad0a083d71d84ff175741d7e157d9b69, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < ac9a51d910bb7465c554c45320cb6c09f3d0b49d, 8653d71ce3763aedcf3d2331f59beda3fecd79e4 ≤ v < 5650c18d93a1db7e27cb5a40b394747eb4686d5b, 89019ab7a64fcdf98a2ba7799e5c6aff58d4a05d, 5.10.235 ≤ v < 5.10.265, 5.4.291 ≤ v < 5.5, 5.12f3c6f2c38062703d3dc7f86958bb0790c6959add, df18150126f66817e4d3f79f309e9c92d6ff384e, 620955b222c47332297d6bf38f78541aa699238a, 380b4bef46c2eb260c7a9c6bb2c5be33ce5a38f9, 87bc316dd6fc90072297c635e10b9aa6075ecda1, f45089eaad0a083d71d84ff175741d7e157d9b69, ac9a51d910bb7465c554c45320cb6c09f3d0b49d, 5650c18d93a1db7e27cb5a40b394747eb4686d5b, 5.10.265, 5.5

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