🇰🇷 한글 설명
runC의 user.go 파일에서 숫자 UID를 사용자명으로 부적절하게 처리하는 취약점으로, 컨테이너 내 passwd 파일에서 숫자 사용자명을 통해 로컬 권한 상승이 가능합니다.
💡 쉬운 설명
Docker 컨테이너에서 숫자만으로 된 사용자 계정을 만들 수 있어서 컨테이너가 실행 중인 호스트 시스템의 권한을 얻을 수 있는 보안 결함입니다.
🇺🇸 원문 (English)
libcontainer/user/user.go in runC before 0.1.0, as used in Docker before 1.11.2, improperly treats a numeric UID as a potential username, which allows local users to gain privileges via a numeric username in the password file in a container.
📍 영향받는 시스템
runC < 0.1.0, Docker < 1.11.2
⚔️ 공격 벡터
컨테이너 내부에서 숫자 사용자명으로 계정을 생성하여 UID 매핑을 통한 권한 상승
🛡️ 대응 방법
Docker를 1.11.2 이상, runC를 0.1.0 이상으로 즉시 업그레이드
🔧 검증 코드
Docker 버전이 1.11.2 이상, runC 버전이 0.1.0 이상이면 패치됨 (버전 숫자 비교)
docker --version | awk '{print $3}' && runc --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'