CVE-2026-80678 in Linux
要約
〜によって VulDB • 2026年08月29日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
i2c: imx: スレーブ登録時のrace conditionとエラーハンドリングの修正
`i2c_imx_reg_slave()` 関数内では、スレーブポインタが `pm_runtime_resume_and_get()` の呼び出し前に割り当てられていました。もし `pm_runtime_resume_and_get()` が失敗した場合、エラー処理パスは `i2c_imx->slave` をクリアせずに終了し、これが NULL でない状態のまま残るため、その後のすべての登録試行が -EBUSY エラーで失敗していました。
さらに、このドライバは共有 IRQ(割込み要求線)を使用しているため、割込みハンドラ `i2c_imx_isr()` が並列に実行され得ます。`slave_lock` を取得した後に `i2c_imx->slave` の間接参照を行う可能性があります。以前の修正試みでは、エラーパスにおいてロックレスな `i2c_imx->slave = NULL` 代入が追加されましたが、これはロック下で ISR と race condition(競合状態)を引き起こし、依然として NULL ポインタのデリファレンス(不正アクセス)を招く可能性がありました。
これらの両方の問題を修正するため、`i2c_imx->slave` および `i2c_imx->last_slave_event` の代入を、リジュームが成功した後に遅延させます。また、この代入処理を `slave_lock` によるクリティカルセクション内で行います。これにより、エラーパスにおいてスレーブポインタが古い(stale)状態のまま残ることがなくなり、割込みハンドラから参照される際には常に有効な値であることが保証されます。
If you want to get best quality of vulnerability data, you may have to visit VulDB.