CVE-2026-74483 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 15.

리눅스 커널에서 다음 취약점이 해결되었습니다:

binfmt_misc: 마운트 실패 시 사용자 네임스페이스 누수 방지

bm_get_tree()는 사용자 네임스페이스에 대한 참조를 가져와 이를 sget 키로 get_tree_keyed()에 전달합니다. sget_fc()는 해당 참조를 sb->s_fs_info로 이동시키고 fc->s_fs_info를 지우므로, 이 시점부터 슈퍼블록이 이를 소유하게 되고 bm_free()에서는 더 이상 이를 볼 수 없게 됩니다.

슈퍼블록은 ->put_super()에서 이를 해제합니다. 그러나 generic_shutdown_super()는 if (sb->s_root) 분기 내부에서만 ->put_super()를 호출하므로, bm_fill_super()가 실패할 때 이를 해제하는 주체가 없습니다:

- kzalloc_obj()의 실패로 인해 s_root이 NULL 상태가 되고 전체 분기가 건너뛰어집니다. - 파일 루프에서 simple_fill_super()가 실패하면 s_root은 설정되지만, s_op는 여전히 ->put_super()가 없는 simple_super_operations를 가리킵니다. bm_fill_super()는 simple_fill_super()가 성공적으로 반환된 후에만 s_ops를 설치하며, 이를 더 일찍 설치해도 simple_fill_super()가 s_op를 덮어쓰기 때문에 도움이 되지 않습니다.

어떤 경우든 vfs_get_super()는 deactivate_locked_super()를 호출하고 참조는 완전히 사라집니다. binfmt_misc 마운트는 사용자 네임스페이스에서 사용 가능하며, inode 및 dentry 캐시는 모두 SLAB_ACCOUNT이므로, 메모리 cgroup에 제한된 권한 없는 호출자는 필요할 때마다 simple_fill_super()를 실패시켜 시도마다 하나의 사용자 네임스페이스를 누수시킬 수 있습니다.

대신 ->kill_sb()에서 참조를 해제합니다(이는 nfsd 및 rpc_pipefs가 키 기반 s_fs_info를 해제하는 방식과 동일하게 조건 없이 실행됨).

또한 이는 슈퍼블록이 여전히 @fs_supers에 있는 동안 ->put_super()가 s_fs_info를 지우는 것을 방지합니다. generic_shutdown_super()는 kill_sb()가 실행될 때까지 sget_fc()가 이를 계속 찾을 수 있도록 의도적으로 그대로 남겨둡니다. 그러나 NULL인 s_fs_info로 인해 test_keyed_super()에서 이를 놓치게 되므로, 동일한 사용자 네임스페이스에 대한 동시 마운트는 grab_super() 대기 단계를 건너뛰고 아직 정리 중인 네임스페이스에 대해 두 번째 슈퍼블록을 생성합니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!