CVE-2022-49900 in Linuxinformazioni

Riassunto

di VulDB • 17/06/2026

Nel kernel Linux, la seguente vulnerabilità è stata risolta:

i2c: piix4: Correzione dell'adattatore non rimosso in piix4_remove()

In piix4_probe(), l'adattatore piix4 viene registrato in:

piix4_probe() piix4_add_adapters_sb800() / piix4_add_adapter() i2c_add_adapter()

In base al tipo di dispositivo rilevato, verrà chiamata piix4_add_adapters_sb800() o la singola piix4_add_adapter(). Nel primo caso, piix4_adapter_count viene impostato come numero di adattatori, mentre nell'altro caso non viene impostato e rimane al valore predefinito *zero*.

Quando piix4 viene rimosso, piix4_remove() rimuove gli adattatori aggiunti in piix4_probe(), basandosi sul valore di piix4_adapter_count. Poiché il conteggio è zero nel caso di un singolo adattatore, l'adattatore non viene rimosso e provoca una perdita di memoria (memory leak) delle risorse allocate per l'adattatore, come il client i2c e il dispositivo.

Queste risorse possono ancora essere accessibili da i2c o dal bus e causare problemi. Un caso facilmente riproducibile è che se un nuovo adattatore viene registrato, i2c otterrà l'adattatore con memory leak e proverà a chiamare smbus_algorithm, che è già stato liberato:

Triggerato da: 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 ]---

Risolvere questo problema impostando correttamente piix4_adapter_count a 1 per il singolo adattatore, in modo che possa essere rimosso normalmente.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsabile

Linux

Prenotare

01/05/2025

Divulgazione

01/05/2025

Moderazione

accettato

CPE

pronto

EPSS

0.00174

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!