🔍 CVE-2026-98979

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

🇰🇷 한글 설명

리눅스 커널의 네임스페이스 처리 로직에서, 마운트 네임스페이스에 속하지 않은(unmounted/internal) 부모 마운트 아래에 automount를 추가할 수 있는 문제가 있습니다. 이로 인해 count_mounts() 함수가 에러 포인터를 역참조하여 널 포인터 역참조 및 커널 패닉이 발생할 수 있으며, 해결을 위해 is_mounted()로 검사를 강화했습니다.

💡 쉬운 설명

리눅스 커널이 잘못된 마운트 지점을 검사하지 않아 특정 파일 열기 작업으로 시스템이 충돌할 수 있습니다. 수정된 커널에서는 이러한 잘못된 마운트 지점을 거부하여 문제가 발생하지 않습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: namespace: refuse an automount below a mount that is in no namespace It's possible to add autmounts even when the parent mount isn't in the mount namespace of the caller. The only requirement we have is that the parent mount namespace must not be NULL, i.e., unmounted. Problem is that clone_private_mount() has MNT_NS_INTERNAL which makes that trivially true. So that passes the test and attach_recursive_mnt() accepts that as a mount point and funny enough, count_mounts() dereferences MNT_NS_INTERNAL. The problem is it is an error pointer... So we can reach this in userspace via fanotify. A filesystem mark on the lower filesystem of an overlay reports paths on the layer clone and reading the event hands out a descriptor on it. For example with debugfs as the lower layer it goes kaboom: openat(evfd, "tracing", O_DIRECTORY) Oops: general protection fault KASAN: null-ptr-deref in range [0x1d0-0x1d7] RIP: 0010:count_mounts+0x35/0x200 attach_recursive_mnt finish_automount And since that sleeping beauty happens under namespace_sem held for writing every mount operation on the system blocks from then on. Congrats. Use is_mounted() instead which rejects unmounted and internal mounts alike. The open fails with EINVAL just as it did before clone_private_mount() used MNT_NS_INTERNAL.

📍 영향받는 시스템

패치 이전의 Linux 커널 (정확한 영향 버전은 해당 커널 패치 이력 및 배포판 보안 공지 확인 필요)

⚔️ 공격 벡터

fanotify 파일시스템 마크를 이용해 overlay 하위 파일시스템의 경로를 얻은 뒤, 해당 경로에 대해 디렉터리 open을 수행하여 커널 충돌(DoS)을 유발

🛡️ 대응 방법

배포판에서 제공하는 최신 커널 보안 업데이트를 적용하고 시스템을 재부팅

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 커널 changelog에서 CVE-2026-98979 수정 포함 여부와 비교하여, 수정된 버전 이상이면 패치된 것으로 판단

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel