CVE-2022-49900 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 25.

리눅스 커널에서 다음 취약점이 해결되었습니다:

i2c: piix4: piix4_remove()에서 어댑터가 제거되지 않는 문제 수정

piix4_probe()에서는 다음과 같은 순서로 piix4 어댑터가 등록됩니다.

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

탐지된 장치 유형에 따라 piix4_add_adapters_sb800() 또는 단일 piix4_add_adapter()가 호출됩니다. 전자의 경우, piix4_adapter_count는 어댑터 수로 설정되지만, 후자의 경우에는 이 값이 설정되지 않고 기본값인 *영(0)*으로 유지됩니다.

piix4가 제거될 때, piix4_remove() 함수는 piix4_probe()에서 추가된 어댑터를 piix4_adapter_count 값을 기준으로 제거합니다. 단일 어댑터의 경우 카운트가 0이므로 어댑터가 제거되지 않으며, 이로 인해 i2c 클라이언트 및 장치와 같은 어댑터에 할당된 소스가 누출(leaked)됩니다.

이러한 소스는 여전히 i2c 또는 버스에서 접근 가능하여 문제를 유발할 수 있습니다. 쉽게 재현 가능한 사례는 다음과 같습니다: 새 어댑터를 등록하면, i2c가 누출된 어댑터를 가져와 이미 해제(freed)된 smbus_algorithm을 호출하려고 시도합니다.

트리거 명령어: 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 ]---

이 문제를 해결하기 위해 단일 어댑터의 경우 piix4_adapter_count를 올바르게 1로 설정하여 정상적으로 제거되도록 합니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

Linux

예약하다

2025. 05. 01.

모더레이션

수락

항목

VDB-307039

EPSS

0.00174

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!