CVE-2026-64514 in Linux
要約
〜によって VulDB • 2026年07月26日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
userfaultfd: pte_present()に基づいてmust_waitの書込み可能性チェックを制限する
userfaultfd_must_wait()およびuserfaultfd_huge_must_wait()は、ページテーブルロックを取得せずにPTEを読み取り、その後pte_write()/huge_pte_write()を適用しています。これらのアクセサ関数は、presentエンコーディングからのビットのみをデコードします。スワップエントリやマイグレーションエントリの存在下では、同じ位置に共有されているオフセットビットを読み取ってしまい、未定義の結果を返すことがあります。
このチェックの意図は「このフォールトがまだWP(書き込み禁止)ブロックされているか?」を確認することです。マーカーではないスワップエントリが存在する場合、ページは転送中であることを意味します。元のフォールトに対して提供されたuserfaultコンテキストはもう同一ではなく、スワップインまたはマイグレーション完了パスにより、ユーザー空間がまだ処理を必要とする場合は新しいフォールトが再配信されます。現在のコードにおける最悪のケースでは、ゴミデータとなった書込みビットが「待機」を示し、スレッドは到着しない可能性のあるUFFDIO_WAKEまで睡眠状態のままになります。
pte_present()に基づいて書込み可能性チェックを行うことで、ロックレスな再チェック時にエントリが実際に存在する場合のみpresent-PTEのビットを検査するようにします。非存在かつマーカーではないケースでは「待機不要」を返し、フォールトパスのリトライを許可します。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.