CVE-2022-49900
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: i2c: piix4: piix4_remove() funksiyasında adapterin silinməməsi problemi düzəldildi piix4_probe() funksiyasında piix4 adapteri burada qeydiyyata alınacaq: piix4_probe() piix4_add_adapters_sb800() / piix4_add_adapter() i2c_add_adapter() Yoxlanılan cihaz tipindən asılı olaraq, piix4_add_adapters_sb800() və ya tək piix4_add_adapter() çağırılacaq. Birinci halda, piix4_adapter_count adapterlərin sayı kimi təyin edilir, digər halda isə təyin edilmir və standart olaraq sıfır (*zero*) qalır. piix4 silindikdə, piix4_remove() funksiyası piix4_adapter_count dəyərinə əsaslanaraq piix4_probe()-də əlavə edilmiş adapterləri silir. Tək adapter halında say sıfır olduğu üçün adapter silinmir və bu da adapter üçün ayrılmış resursların, məsələn, i2c klientinin və cihazının sızmasına (leak) səbəb olur. Bu resurslara hələ də i2c və ya şin (bus) vasitəsilə daxil olmaq mümkündür və bu problemlərə yol açır. Asanlıqla təkrar olunan bir nümunə belədir ki, yeni adapter qeydiyyatdan keçdikdə, i2c sızmış adapteri götürəcək və artıq azad edilmiş smbus_algorithm funksiyasını çağırmağa çalışacaq: Tətikləyici: rmmod i2c_piix4 && modprobe max31730 BUG: unable to handle page fault for address: ffffffffc053d860 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page Oops: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 3752 Comm: modprobe Tainted: G Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) RIP: 0010:i2c_default_probe (drivers/i2c/i2c-core-base.c:2259) i2c_core RSP: 0018:ffff888107477710 EFLAGS: 00000246 ... <TASK> i2c_detect (drivers/i2c/i2c-core-base.c:2302) i2c_core __process_new_driver (drivers/i2c/i2c-core-base.c:1336) i2c_core bus_for_each_dev (drivers/base/bus.c:301) i2c_for_each_dev (drivers/i2c/i2c-core-base.c:1823) i2c_core i2c_register_driver (drivers/i2c/i2c-core-base.c:1861) i2c_core do_one_initcall (init/main.c:1296) do_init_module (kernel/module/main.c:2455) ... </TASK> ---[ end trace 0000000000000000 ]--- Bu problem, tək adapter üçün piix4_adapter_count dəyərinin düzgün şəkildə 1 olaraq təyin edilməsi ilə həll edilmişdir ki, beləliklə o normal şəkildə silinə bilsin.
Necə düzəltmək olar
- linux linux_kernel5.10.154, 5.15.78, 6.0.8 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 5.4 ≤ v < 5.10.154, 5.11 ≤ v < 5.15.78, 5.16 ≤ v < 6.0.8, 6.1 | 5.10.154, 5.15.78, 6.0.8 |
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.