🔍 CVE-2026-98978

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널에서 잠긴(locked) 마운트가 부모 마운트와 함께 소멸되지 않고 만료 대상이 되어, 언마운트 시 하위 디렉터리가 노출되는 문제가 해결되었습니다. 잠긴 마운트는 MOVE_MOUNT_BENEATH로 이동될 수 있으며, 이후 상위 마운트를 언마운트하여 보호된 파일/디렉터리가 드러날 수 있었습니다. 패치는 잠긴 마운트를 만료 처리에서 제외하고, 잠긴 자식이 있는 마운트의 일반 umount는 EBUSY를 반환하도록 변경합니다.

💡 쉬운 설명

가려져 있어야 할 폴더 내용이 특정 조작으로 몰래 드러날 수 있는 문제였습니다. 이제 잠긴 마운트는 보호 상태를 유지하며, 상위와 함께만 사라지도록 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: namespace: never expire a locked mount Locked mounts are special. They protect the underlying files and directories from being revealed. do_umount() refuses to unmount locked mounts but shrink_submounts() doesn't. A shrinkable mount can become locked once the owner of a user namespace puts it beneath a locked mount with MOVE_MOUNT_BENEATH. The locked property now moves to the mount at the bottom making it possible to unmount the top mount. So umount() of an unlocked ancestor now expires the bottom mount first and the covered directory is revealed: move_mount(c -> x/hidden, MOVE_MOUNT_BENEATH) = 0 the cover after the lock moved: umount2(x/hidden) = 0 the holder of the lock: umount2(x/hidden) = EINVAL the root of the copy, busy: umount2(x) = EBUSY reads x/hidden/secret: "covered-by-root" So leave a locked mount alone as it dies together with its parent. A plain umount() of an unlocked mount with a locked one below it is EBUSY from now on. It's the same for any other locked child. A lazy umount still takes the whole tree. mark_mounts_for_expiry() never sees a locked mount. lock_mnt_tree() leaves a mount on an expiry list alone and nothing else puts a locked one on such a list. Add an assert for this.

📍 영향받는 시스템

패치 이전의 Linux 커널 (마운트 네임스페이스 및 MOVE_MOUNT_BENEATH를 지원하는 버전, 정확한 범위는 확인 필요)

⚔️ 공격 벡터

사용자 네임스페이스 소유자가 잠긴 마운트 아래에 마운트를 이동시킨 뒤 상위 마운트를 언마운트하여 가려진 디렉터리 내용을 노출시키는 방식

🛡️ 대응 방법

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

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지에서 해당 CVE의 수정 버전과 비교하여, 같거나 높으면 패치된 것입니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel