CVE-2026-89764 in Linux
要約
〜によって VulDB • 2026年09月11日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
rust: devres: 並行するrevoker間の競合状態の修正
2つのパスがDevresを同時に取り消そうとする際に、潜在的なrace condition(競合状態)が発生します。
ドライバコアのdevres_release_all()はreleaseコールバックを通じてRevocable::revoke()を呼び出す一方、Devres::drop()は別のCPU上でrevoke_nosync()を呼び出します。
is_availableスワップを取得できなかったrevokerは即座に返りますが、取得した側のrevokerはまだ内部データに対してdrop_in_place()を実行している可能性があります。これにより、他のrevokerの呼び出し元がdrop_in_place()によってまだ参照されている隣接するリソース(例:Devres<DmaMappedSgt>とSGTableによるバックリングsg_tableおよびページの解放競合)をドロップしようとした際に、use-after-freeが発生する可能性があります。
この問題を修正するため、Completionを追加します。releaseコールバックはrevoke()の完了後にCompletionにシグナルを送り、Devres::drop()はis_availableスワップで敗北した場合にそれを待機します。これにより、Devres::drop()が戻る前にラップされたオブジェクトが完全に破棄されることが保証されます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.