🇰🇷 한글 설명
runc 1.3.6, 1.4.3, 1.5.0 미만 버전에서 컨테이너 rootfs 설정 시 /dev 심볼릭 링크를 악용하여 호스트의 파일을 삭제하거나 임의의 디렉토리에 심볼릭 링크를 생성할 수 있는 취약점입니다. Docker 환경에서는 읽기 전용 레이어가 이를 차단하여 안전하지만, runc 기반의 다른 컨테이너 도구들은 공격에 노출될 수 있습니다.
💡 쉬운 설명
악성 컨테이너 이미지를 실행할 때, 컨테이너가 호스트 컴퓨터의 파일을 몰래 지우거나 가짜 연결 통로를 만들 수 있는 문제입니다. Docker를 사용 중이라면 안전하지만, 다른 방식의 컨테이너 도구를 사용한다면 주의가 필요합니다.
🇺🇸 원문 (English)
runc is a CLI tool for spawning and running containers according to the OCI specification. In versions prior to 1.3.6, 1.4.0-rc.1, 1.4.0-rc.12, 1.5.0-rc.1, and 1.5.0-rc.1, when setting up the container rootfs, setupPtmx and setupDevSymlinks call os.Remove and os.Symlink with a filepath.Join string which allow an image with /dev as a symlink to trick runc into deleting files called ptmx on the host or creating a hardcoded set of symlinks with specific names and targets in an arbitrary pre-existing host directory. This issue is not exploitable under Docker, because Docker creates a top-level read-only layer that masks any malicious /dev symlink present in the container image — unlike some other Linux container tooling, whose higher-level runtimes built on runc remain exposed to exploitation via a malicious image. This issue has been fixed in versions 1.3.6, 1.4.3 and 1.5.0.
📍 영향받는 시스템
runc versions prior to 1.3.6, 1.4.3, and 1.5.0
⚔️ 공격 벡터
악성 /dev 심볼릭 링크가 포함된 컨테이너 이미지를 실행하여 호스트 파일 시스템 조작
🛡️ 대응 방법
runc를 1.3.6, 1.4.3 또는 1.5.0 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전이 1.3.6, 1.4.3, 1.5.0 중 하나보다 낮거나 해당 버전 미만인지 확인
runc --version | grep -E 'runc ([0-9]+\.[0-9]+\.[0-9]+)'