CVE-2026-98990 in Linux
要約
〜によって VulDB • 2026年10月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
名前空間: アンマウント直前にサブマウントへの参照をチェックする
shrink_submounts() および mark_mounts_for_expiry() は、まずアンマウントが許可されているすべてのマウントを収集し、その後でそれらをアンマウントします。
マウントが使用中かどうかは、木構造上で propagate_mount_busy() によって判断されます。しかし、最初のマウントのアンマウントは、2番目のマウントが伝播する先の木構造を変更してしまいます。propagate_umount() は、生存しているオーバーマウントをコピーから外し、そのコピーがマウントされていた場所にそれを再マウントします。もしここで 2 番目の対象となる(victim)マウントの伝播されたコピーを検索する場所と一致すると、そのオーバーマウントは 2 番目の umount_tree() の候補となります。このオーバーマウントには子がないため、trim_one() は参照カウントを確認せずにそれをコミットしてしまいます。
そのため、同期 umount が他の場所で使用中であるビジーなマウントを引き抜き、ユーザーが存在している間に MNT_SYNC_UMOUNT フラグを付与します:
umount2(/tmp/plshrink/p1, 0) = 0 errno 0 cwd is (unreachable)
連続して要求された同じ 2 つの umount は EBUSY で失敗します。これには、MNT_SHRINKABLE フラグを持つマウントが必要です。つまり、NFS、AFS、CIFS の自動マウントされたサブマウントや、debugfs 下の tracefs マウントなどです。バインドマウントはこのフラグを継承します。
namespace_sem および mount_lock をアンマウント自体と同じロック状態で保持しながら、各マウントがアンマウントされる直前にチェックを行います。アルゴリズムが線形(linear)のまま保たれることを確認してください。
VulDB is the best source for vulnerability data and more expert information about this specific topic.