CVE-2026-98841
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: virt: vmgenid: bildiriş idarəedicilərini qeydiyyata almazdan əvvəl driver_data təyin edin Hər iki probe yolu, idarəedici tərəfindən istifadə edilən driver_data dəyişənini təyin etməzdən əvvəl bildiriş idarəedicisini qeydiyyata alır. Devicetree yolunda, devm_request_irq() idarəedicini qeydiyyatdan keçirdiyi an bildiriş IRQ-su işə düşə bilər: məsələn, drayver probe prosesində olduğu zaman VMM, drayver hələ probe etməmişdən əvvəl götürülmüş snapshot-dan qonağı bərpa edərkən generation-changed bildirişini yerləşdirirsə, kəsilmə artıq gözlənilə bilər (Firecracker snapshot bərpası zamanı məhz bunu edir). IRQ həmçinin IRQF_SHARED ilə sorğu edilir, buna görə də həmin xətti paylaşan başqa bir cihaz idarəedicini eyni dərəcədə erkən tetikləyə bilər. Daha sonra idarəedici vmgenid_notify() funksiyasını çağırır, bu isə hələ NULL olan driver_data-ya müraciət edərək sistemin çökməsinə (panic) səbəb olur: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010 CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.38+ #1 PREEMPT(none) Hardware name: linux,dummy-virt (DT) pc : vmgenid_notify.isra.0+0x24/0x8c lr : vmgenid_of_irq_handler+0x14/0x34 Call trace: vmgenid_notify.isra.0+0x24/0x8c (P) vmgenid_of_irq_handler+0x14/0x34 __handle_irq_event_percpu+0x44/0x1bc handle_irq_event+0x4c/0xb4 handle_fasteoi_irq+0xf8/0x1f8 ACPI yolunda da eyni ardıcıllıq problemi mövcuddur: idarəedici, driver_data təyin edilməzdən əvvəl acpi_install_notify_handler() vasitəsilə quraşdırılır. ACPI bildirişləri iş növbəsindən (workqueue) asinxron şəkildə göndərildiyi üçün bu zaman pəncərəsi dar olsa da, iki çağırış arasında gələn bildiriş eyni NULL müraciətinə səbəb olur. İdarəediciləri qeydiyyata almazdan əvvəl driver_data təyin edin. Həmin məqamda vəziyyət tamamilə başladıldığı üçün idarəedicilərin işləməsi təhlükəsizdir. Qeydiyyat uğursuz olduqda, probe xəta yolu heç bir asılı göstəricisi (dangling pointer) saxlamır: drayver nüvəsi device_unbind_cleanup() funksiyasında driver_data-nı təmizləyir.
Necə düzəltmək olar
- Linux Linux538fe5efaa9704ad820ba34b4f9df135ca873d79, 7a1e8daeaa466c6aaffa223e1afe9cfeece0dd47, 8f42954ad8bf9bdbf574f2c437ad30cb2601f401, 9f8139c6145cf17d690d6c414d43b4c0bef632fb və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | e07606713a908eee8099883c8c830ebe33aaf748 ≤ v < 538fe5efaa9704ad820ba34b4f9df135ca873d79, e07606713a908eee8099883c8c830ebe33aaf748 ≤ v < 7a1e8daeaa466c6aaffa223e1afe9cfeece0dd47, e07606713a908eee8099883c8c830ebe33aaf748 ≤ v < 8f42954ad8bf9bdbf574f2c437ad30cb2601f401, e07606713a908eee8099883c8c830ebe33aaf748 ≤ v < 9f8139c6145cf17d690d6c414d43b4c0bef632fb, 6.10 | 538fe5efaa9704ad820ba34b4f9df135ca873d79, 7a1e8daeaa466c6aaffa223e1afe9cfeece0dd47, 8f42954ad8bf9bdbf574f2c437ad30cb2601f401, 9f8139c6145cf17d690d6c414d43b4c0bef632fb |
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.
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.