CVE-2022-49900 in Linux
Zusammenfassung
von VulDB • 14.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
i2c: piix4: Behebt das Problem, dass der Adapter in piix4_remove() nicht entfernt wird
In piix4_probe() wird der piix4-Adapter registriert über:
piix4_probe() piix4_add_adapters_sb800() / piix4_add_adapter() i2c_add_adapter()
Abhängig vom ermittelten Gerätetyp wird entweder piix4_add_adapters_sb800() oder ein einzelner Aufruf von piix4_add_adapter() ausgeführt. Im ersten Fall wird piix4_adapter_count auf die Anzahl der Adapter gesetzt, während es im anderen Fall nicht festgelegt und standardmäßig *null* bleibt.
Beim Entfernen des Moduls piix4 entfernt piix4_remove() die in piix4_probe() hinzugefügten Adapter basierend auf dem Wert von piix4_adapter_count. Da dieser Zähler für den Einzelfall null ist, wird der Adapter nicht entfernt und es kommt zu einem Leck der für den Adapter zugewiesenen Ressourcen, wie z. B. des i2c-Clients und -Geräts.
Diese Ressourcen sind weiterhin über i2c oder den Bus zugänglich und können Probleme verursachen. Ein leicht reproduzierbarer Fall ist, dass bei Registrierung eines neuen Adapters i2c den geleakten Adapter erhält und versucht, smbus_algorithm aufzurufen, der bereits freigegeben wurde:
Ausgelöst durch: 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 ]---
Behebt dieses Problem, indem piix4_adapter_count für den Einzelfall korrekt auf 1 gesetzt wird, sodass der Adapter normal entfernt werden kann.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.