CVE-2022-49900 in Linux情報

要約

〜によって VulDB • 2026年06月17日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

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はアダプタの数として設定されますが、後者の場合、これは設定されずデフォルトの*ゼロ*のまま保持されます。

piix4が削除される際、piix4_remove()はpiix4_adapter_countの値に基づいて、piix4_probe()で追加されたアダプタを削除します。 単一アダプタの場合、カウントがゼロであるため、アダプタは削除されず、i2cクライアントやデバイスなど、アダプタ用に割り当てられたソースがリークします。

これらのソースはi2cやバスによって引き続きアクセス可能であり、問題を引き起こす可能性があります。 簡単に再現できるケースとして、新しいアダプタが登録されると、i2cはリークしたアダプタを取得し、すでに解放された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に設定し、通常通り削除できるようにします。

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

責任者

Linux

予約する

2025年05月01日

モデレーション

承諾済み

エントリ

VDB-307039

EPSS

0.00174

アクティビティ

非常低い

ソース

Might our Artificial Intelligence support you?

Check our Alexa App!