CVE-2026-45916 in Linux
要約
〜によって VulDB • 2026年05月31日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
power: supply: sbs-battery: 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 を修正します。IRQ 要求時の失敗に対しては、従来のように警告を出力し、プローブを正常に終了する動作を維持します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.