Omarchy의 모든 사용자 프로세스가 root 권한을 얻을 수 있었던 취약점

2 weeks ago 32

Omarchy의 기본 Docker 설정 때문에 데스크톱 세션의 사실상 모든 프로그램이 암호·sudo·권한 확인 없이 root 권한을 얻을 수 있었으며, 비공개 제보 후 수정됨 기본 사용자를 Linux docker 그룹에 추가해 root Docker 데몬의 소켓에 접근시킨 것이 원인으로, 호스트 파일시스템을 마운트하면 root 권한으로 파일 조작과 코드 실행이 가능함 보조 그룹은 자식 프로세스에 상속되므로 브라우저, IDE, AI 코딩 에이전트, npm 스크립트와 백그라운드 프로세스의 침해가 시스템 전체 침해로 확대될 수 있음 Docker를 쓰지 않는 사용자에게도 위험한 설정이 기본 적용됐고, 문서의 “일반 사용자로 Docker 실행”이라는 표현은 실제와 달리 rootless 구성으로 오해하게 할 수 있었음 4.0.1 이전 버전과 3.8.4가 영향을 받으므로 4.0.1로 업데이트해야 하며, root 권한 없는 컨테이너 실행이 필요하면 데몬리스 방식의 Podman을 대안으로 사용할 수 있음 root 접근을 허용한 기본 Docker 구성 Omarchy는 기본 사용자를 Linux docker 그룹에 넣어 sudo 없이 docker run 같은 명령을 실행할 수 있게 했음 Arch의 Docker 데몬은 root로 실행되며 /var/run/docker.sock 에서 요청을 받음 docker 그룹 구성원은 이 소켓과 통신할 수 있으며, Docker도 해당 그룹이 사용자에게 root 수준 권한을 부여한다고 경고함 Docker 소켓에 접근하는 프로세스는 root 소유 데몬에 다음 작업을 요청할 수 있음 컨테이너를 root로 실행 호스트 파일시스템의 임의 영역을 컨테이너에 마운트 마운트된 파일을 root 권한으로 조작 호스트에서 root 권한으로 코드 실행 이 구성에서는 기본 사용자뿐 아니라 해당 사용자의 세션에서 시작된 모든 프로세스가 root 접근 경로를 갖게 됨 /etc/shadow로 확인한 권한 상승 일반 사용자가 /etc/shadow를 직접 읽으면 Permission denied 가 발생함 id 결과에서는 기본 사용자가 docker, input, wheel 등의 그룹에 포함된 것으로 나타남 다음 명령은 호스트의 루트 디렉터리를 컨테이너에 마운트한 뒤 보호된 파일을 읽음 docker run --rm -v /:/hostroot alpine cat /hostroot/etc/shadow 명령은 일반 사용자 프로세스가 실행하지만...

Read Entire Article