CVE-2026-98983 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
unshare: 절대 획득되지 않은 활성 네임스페이스 참조를 해제하지 않음
nsproxy의 네임스페이스에 대한 활성 참조는 switch_task_namespaces() 및 copy_namespaces()에서 nsproxy가 태스크에 설치될 때 획득되며, deactivate_nsproxy()를 통해 put_nsproxy()에 의해 다시 해제됩니다.
그러나 ksys_unshare()는 set_cred_ucounts() 실패 시 아직 설치되지 않은 nsproxy에 대해 put_nsproxy()를 호출합니다. 해당 nsproxy의 새 네임스페이스 참조 카운트가 0에서 -1로 감소하며, 호출자가 계속 사용하는 nsproxy가 공유하는 네임스페이스는 해당 nsproxy에 속한 참조 하나를 잃게 됩니다:
WARNING: kernel/nscommon.c:171 at __ns_ref_active_put+0x1cd/0x230 nsproxy_ns_active_put deactivate_nsproxy ksys_unshare
이후 호출자가 속해 있는 네임스페이스는 더 이상 listns()에 나열되지 않습니다. set_cred_ucounts()는 alloc_ucounts()가 할당할 수 없을 때만 실패하며, 이는 호출자의 실제 UID(real uid)와 유효 UID(effective uid)가 다를 경우에만 발생합니다.
커밋 cefd55bd2159("nsproxy: fix free_nsproxy() and simplify create_new_namespaces()")은 두 가지 사례를 의도적으로 분리했습니다. nsproxy_free()는 준비되었지만 아직 설치되지 않은 nsproxy를 해제하며, 이는 실패한 setns()가 put_nsset()에서 사용하는 방식입니다. 이를 내보내고(free) 실패한 unshare() 상황에서도 이 함수를 사용하도록 수정합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.