CVE-2026-98989 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
namespace: 마운트 네임스페이스 순환을 위한 재귀적 바인드 마운트 확인
do_loopback()는 호출자의 것과 같거나 더 오래된 마운트 네임스페이스의 파일을 바인드 마운트하는 것을 거부합니다. 이는 자신의 파일이나 조상(ancestor)의 파일을 포함하고 있는 마운트 네임스페이스가 순환(cycle)을 유발하기 때문입니다. 그러나 do_loopback()은 바인드 마운트가 시작되는 dentry만 확인합니다. MS_REC 플래그를 사용하면 그 아래의 모든 것이 복사되며, do_loopback()는 CL_COPY_MNT_NS_FILE를 전달하여 소스 아래에 있는 마운트 네임스페이스 파일들이 복사되도록 합니다.
이는 호출자의 자체 마운트 네임스페이스 내에 있는 소스의 경우 문제없습니다. 해당 위치의 모든 마운트 네임스페이스 파일은 바인드 마운트될 때 동일한 검사를 통과했기 때문입니다. 그러나 다른 마운트 네임스페이스에 있는 소스의 경우에는 그렇지 않습니다. may_copy_tree()는 /proc/<pid>/ns/<ns> 및 pidfds가 바인드 마운트될 수 있도록, 어떤 마운트 네임스페이스에 속해 있든 상관없이 모든 nsfs 또는 pidfs 파일의 바인드 마운트를 허용합니다. 만약 마운트 네임스페이스 파일 디스크립터들의 바인드 마운트 스택을 생성하면 커널은 해당 마운트 네임스페이스와의 조상 관계를 무시하고 이를 복사합니다:
151 146 0:7 net:[4026531833] /tmp/nrc/y rw - nsfs nsfs rw
152 151 0:7 mnt:[4026532293] /tmp/nrc/y rw - nsfs nsfs rw
마운트 152는 마운트 네임스페이스 4026532293 내부의 마운트 네임스페이스 파일에 대한 마운트로, 이는 마운트 네임스페이스 4026532293 내에 있습니다. 해당 네임스페이스와 그 아래의 모든 마운트는 누설(leaked)됩니다... 이를 방지하려면 더 오래된 마운트 네임스페이스의 프로세스가 파일을 스택하고 반복하는 것만으로 무제한으로 누설이 발생합니다:
제어 후: Shmem: 380 kB 자식: mount(/proc/self/fd/6, MS_BIND|MS_REC): 성공 순환 발생 후: Shmem: 65916 kB
do_move_mount()는 바로 이러한 이유로 분리된 트리에 대해 check_for_nsfs_mounts()를 실행합니다. graft(접목)되기 전에 복사본에 대해서도 동일한 검사를 수행해야 합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.