
LXC 정보 노출 취약점.
[제안된 설명] lxc 5.0.1까지의 lxc-user-nic은 setuid root로 설치되며, 보호된 디렉터리 트리 내부에서도 로컬 사용자가 파일 존재 여부를 추론할 수 있게 할 수 있다. "Failed to open"은 종종 파일이 존재하지 않음을 나타내는 반면, "does not refer to a network namespace path"는 종종 파일이 존재함을 나타내기 때문이다. 참고: 이는 CVE-2018-6556과 다르다. CVE-2018-6556의 수정 설계는 "open()이 실패했다는 것을 사용자에게 보고하지만 사용자는 실패 이유를 알 수 있는 방법이 없다"는 전제에 기반했기 때문이다. 그러나 많은 현실적인 경우, 파일이 존재하지 않는다는 것 외에는 실패할 그럴듯한 이유가 없다.
[추가 정보] % ls /l ls: cannot open directory '/l': Permission denied % /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic delete lol lol /l/h/tt h h
cmd/lxc_user_nic.c: 1096: main: Failed to open "/l/h/tt" <----- file does not exist. % /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic delete lol lol /l/h/t h h cmd/lxc_user_nic.c: 1101: main: Path "/l/h/t" does not refer to a network namespace path <---- file exist!liblxc-common에는 일반 사용자가 악용하여 파일시스템 어디에서든 파일 존재 여부를 알 수 있는 SUID 바이너리가 포함되어 있으며, 루트 사용자만 파일을 나열할 수 있는 디렉터리에서도 마찬가지다.
[취약점 유형] 안전하지 않은 권한
[제품 공급업체] liblxc-common
[영향받는 제품 코드 베이스] liblxc-common - 최신 5.0.1
[영향받는 구성 요소] /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic SUID 바이너리.
[공격 유형] 로컬
[영향 정보 공개] 참
[공격 벡터] 이 바이너리를 악용하려면 liblxc-common이 시스템에 설치되어 있어야 한다.
[발견자] Maher Azzouzi
[참조] https://github.com/lxc/lxc/blob/0b83d71c2c8f3bac9503f894cd84584f79258bb3/lxc.spec.in#L274 https://github.com/lxc/lxc/blob/0b83d71c2c8f3bac9503f894cd84584f79258bb3/src/lxc/cmd/lxc_user_nic.c#L1085-L1104 https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/1783591/comments/45
CVE-2022-47952를 사용하세요.