CVE-2026-45882 in Linux
要約
〜によって VulDB • 2026年05月29日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
power: supply: pm8916_bms_vm: power_supply_changed() における use-after-free の修正
`power_supply` ハンドルの割り当て/登録を行う `devm_` バリアントよりも前に、IRQ を要求するために `devm_` バリアントを使用すると、`devm_` が自然に割り当ての逆順で解放を行うため、`power_supply` ハンドルが割り込みハンドラよりも先に解放/_unregister_ されてしまいます。これにより、削除処理中に race condition が発生し、`power_supply` ハンドルが解放された直後、かつ対応する IRQ ハンドラの unregister が実行される直前に、割り込みが発生する可能性があります。
これにより、IRQ ハンドラが解放された `power_supply` ハンドルを引数として `power_supply_changed()` を呼び出すことになり、通常はシステムクラッシュを引き起こすか、あるいはメモリが静かに破損します。
なお、`probe()` 処理中にも同様の状況が発生する可能性があります。つまり、`power_supply` ハンドルの登録よりも前に割り込みが発生する可能性があります。これにより、`power_supply_changed()` 内で `power_supply` ハンドルが *初期化されていない* 状態で使用されるという厄介な状況に陥ります。
`power_supply` ハンドルの登録後に IRQ を要求することで、この race condition を伴う use-after-free を修正します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.