🔍 CVE-2026-98976

7.8
CVSS Score
HIGH
2026-10-23
2026-10-24 14:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 마운트 네임스페이스 처리에서, MOVE_MOUNT_BENEATH로 전파된 마운트 복사본을 아래에 배치할 때 잠금(MNT_LOCKED) 속성이 잘못 이전되어 잠긴 커버 마운트가 해제될 수 있는 취약점입니다. 이로 인해 사용자 네임스페이스 소유자가 호스트에서 숨겨진 비밀 파일 내용에 접근할 수 있습니다.

💡 쉬운 설명

컨테이너나 사용자 네임스페이스 안에서 원래 숨겨져 있던 폴더의 덮개를 풀어 내부 데이터를 볼 수 있게 됩니다. 호스트에서 마운트 작업이 일어날 때 발생하는 문제입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: namespace: keep the lock on a mount that a propagated copy is moved beneath attach_recursive_mnt() transfers MNT_LOCKED from the top mount to the mount that is moved beneath it with MOVE_MOUNT_BENEATH. This allows the owner of a user namespace to replace its locked /proc or its root. The mount beneath takes on the job of covering the underlying mountpoint allowing the top mount to be unmounted. Consider two mount namespaces: (H) The host H has a shared mount P with a secret in P/d (Z) Z is a user namespace made from M. Its copy of P receives propagation from the host's P and its copy of M's cover on P/d is locked Z's owner must not get to see P/d. Now (H) mounts X on P/d. This propagates into (Z). The copy of X lands beneath (Z)'s locked cover. The locked property is transfered from (Z)'s cover to the copy of X propagated beneath it. The cover is now unlocked. Now (H) unmounts X again. The copy of X in (Z) gets unmounted and the covering mount is left unlocked on top of P/d. (Z) can now unmount it: Z: umount2(P/d) = EINVAL /* the cover is locked */ H: mount X on P/d, umount X /* both propagate into Z /* Z: umount2(P/d) = 0 /* the cover is now unlocked */ Z: read P/d/secret = "covered-by-root" /* secret revealed */ So only transfer the locked property to the mount beneath for mounts the caller has placed. A propagated copy that lands beneath a locked mount is locked as well so that the mount at the bottom of the stack carries a lock the way every check expects. The mount on top of it remains locked to ensure that it keeps covering even if the propagated mount is unmounted again.

📍 영향받는 시스템

패치가 적용되지 않은 Linux 커널 버전(마운트 네임스페이스 및 move_mount BENEATH 기능을 사용하는 시스템)

⚔️ 공격 벡터

호스트에서 공유 마운트 지점에 마운트 후 해제를 반복하여, 사용자 네임스페이스 내 잠긴 커버 마운트를 언마운트해 숨겨진 파일을 노출시키는 방식

🛡️ 대응 방법

배포판 제공 최신 커널 보안 업데이트를 적용하고 재부팅합니다.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지에서 이 CVE 패치가 포함된 버전과 비교하여, 같거나 높으면 패치된 것이고 낮으면 업데이트가 필요합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel