🔍 CVE-2026-98994

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

🇰🇷 한글 설명

Linux 커널의 statmount 구현에서 STATMOUNT_BY_FD로 접근한 언마운트된 마운트의 부모 마운트를 mount_lock 없이 읽어, 이미 해제된 부모를 역참조할 수 있는 use-after-free 문제가 해결되었습니다. 수정은 언마운트된 마운트의 부모를 mount_lock 하에서 읽도록 변경하였습니다.

💡 쉬운 설명

리눅스 커널이 이미 분리된 파일시스템 정보를 조회하는 과정에서, 더 이상 존재하지 않는 상위 정보를 잘못 읽을 수 있는 문제였습니다. 이를 안전한 잠금 방식으로 읽도록 고쳐서 잘못된 메모리 접근을 막았습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: statmount: read the parent of an unmounted mount under mount_lock statmount_mnt_basic() reads the ids of the parent through m->mnt_parent with namespace_sem held for reading. That's fine for a mount that is in a namespace. Everything above it is pinned by that namespace. STATMOUNT_BY_FD also accepts a file descriptor on a mount that has been unmounted on purpose and that only the file descriptor keeps alive. If that mount stayed attached to its parent when it was unmounted the parent is unmounted as well and nothing pins it for the child. The final mntput() unmounts the children under mount_lock alone and frees the parent afterwards. Concurrently, statmount_mnt_basic() reads m->mnt_parent twice while that can happen and can easily dereference a mount that's already gone. Read the parent of an unmounted mount under mount_lock. The parent can't be put while it is held and both ids come from the same mount. A mounted mount's parent is pinned by the namespace and a mount can't leave its namespace while namespace_sem is held, so the common case takes no global lock.

📍 영향받는 시스템

패치 전 Linux 커널 (statmount 시스템 콜을 지원하는 버전, 정확한 영향 버전 범위는 확인 필요)

⚔️ 공격 벡터

로컬 사용자가 의도적으로 언마운트된 마운트의 파일 디스크립터를 유지한 채 STATMOUNT_BY_FD로 조회해 커널 메모리 손상이나 정보 노출을 유도할 수 있습니다.

🛡️ 대응 방법

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

🔧 검증 코드

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

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel