CVE-2022-49900 in Linuxinformação

Sumário

de VulDB • 14/06/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

i2c: piix4: Corrige o adaptador não sendo removido em piix4_remove()

Em piix4_probe(), o adaptador piix4 será registrado em:

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

Com base no tipo de dispositivo detectado, piix4_add_adapters_sb800() ou o único piix4_add_adapter() será chamado. Para o primeiro caso, piix4_adapter_count é definido como o número de adaptadores, enquanto que para outro caso ele não é definido e permanece com o valor padrão *zero*.

Quando o piix4 é removido, piix4_remove() remove os adaptadores adicionados em piix4_probe(), baseando-se no valor de piix4_adapter_count. Como a contagem é zero para o caso de um único adaptador, o adaptador não será removido e faz com que as fontes alocadas para o adaptador sejam vazadas (leaked), como o cliente i2c e o dispositivo.

Essas fontes ainda podem ser acessadas pelo barramento i2c ou bus e causar problemas. Um caso facilmente reproduzível é que, se um novo adaptador for registrado, o i2c obterá o adaptador vazado e tentará chamar smbus_algorithm, que já foi liberado:

Acionado por: 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 ]---

Corrige este problema definindo corretamente piix4_adapter_count como 1 para o único adaptador, de modo que ele possa ser removido normalmente.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsável

Linux

Reservar

01/05/2025

Divulgação

01/05/2025

Moderação

aceite

Entrada

VDB-307039

CPE

pronto

EPSS

0.00174

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!