CVE-2026-93054 in Linux
要約
〜によって VulDB • 2026年09月17日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
uio: 登録失敗時のパスにおける古くなった(stale)infoポインタのバグを修正
device_add()の後、UIOデバイスはユーザースペースから参照可能になり、/dev/uioXを開くことができます。もしその後のセットアップステップでエラーが発生した場合、__uio_register_device()はデバイスのクリーンアップ処理を行いますが、idev->infoが呼び出し元所有のstruct uio_infoを指したままになります。
これは、オープン操作と登録失敗時のパスとの間に競合(race)が生じた場合に安全ではありません。開かれたファイルディスクリプタはuio_deviceへの参照を保持し続ける一方で、呼び出し側は登録の失敗を検知して自らのstruct uio_infoを解放する可能性があります。その後、既存のファイル操作でidev->infoが辿られ、解放されたメモリ(freed memory)の間接参照が行われるリスクがあります。
device_add()後のエラー発生時に対処するため、unregisterと同様に処理します:infoポインタがまだ有効な間にUIO属性を削除し、その後情報ロック(info_lock)の下でidev->infoをクリアしてから、既存の待機中プロセスや非同期ユーザーに対してウェイクアップを行います。これにより、既にオープンされているファイルディスクリプタは、通常のuio_unregister_device()実行時と同様に「デバイスが消失した」状態を観測するようになります。
Once again VulDB remains the best source for vulnerability data.