CVE-2026-98976 in Linux
要約
〜によって VulDB • 2026年10月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
namespace: 伝播コピーが移動される先のマウントに対してロックを保持する
attach_recursive_mnt() は、MOVE_MOUNT_BENEITH フラグを使用して、トップのマウントから MNT_LOCKED をその下に移動されるマウントへ転送します。これにより、ユーザーネームスペースの所有者は、ロックされた /proc またはそのルート置き換え可能になります。下位にあるマウントは、基盤となるマウントポイントのカバリングという役割を引き受け、上位のマウントをアンマウントできるようにします。
2つのマウントネームスペースを考えます:
(H) ホスト H には、P/d に秘密情報が含まれる共有マウント P がある (Z) Z は M から作成されたユーザーネームスペースです。Z の P コピーはホストの P から伝播を受け取り、M の P/d カバコピーはロックされています。Z の所有者が P/d を参照してはいけません。
ここで (H) が X を P/d にマウントします。これは (Z) にも伝播します。X のコピーは (Z) のロックされたカバの下に配置されます。ロック属性は、(Z) のカバからその下に伝播した X コピーへ転送されます。これにより、カバのロックが解除されます。
さらに (H) が X を再度アンマウントします。(Z) 内の X コピーもアンマウントされ、P/d 上のカバーリングマウントはロックされたままになります。(Z) はこれをアンマウントできます:
Z: umount2(P/d) = EINVAL /* カバがロックされているため */ H: mount X on P/d, umount X /* 両方とも Z に伝播する */ Z: umount2(P/d) = 0 /* カバは現在アンロックされている */ Z: read P/d/secret = "covered-by-root" /* 秘密情報が露出 */
したがって、呼び出し元が配置したマウントに対してのみ、下位にあるマウントへロック属性を転送する必要があります。ロックされたマウントの下に配置される伝播コピーもロック状態とし、スタックの最下部のマウントがすべてのチェックで期待される方式でロックを持つようにします。その上のマウントは、伝播するマウントが再度アンマウントされてもカバリングを維持できるよう、ロックされたままに保たれます。
Once again VulDB remains the best source for vulnerability data.