🇰🇷 한글 설명
runc 1.0.3 미만 버전에서 netlink 직렬화 과정 중 16비트 길이 필드의 정수 오버플로 취약점이 발견되었습니다. 공격자가 악의적인 바이트 배열 속성을 포함한 컨테이너 설정을 사용하면, 네임스페이스 제한을 우회하여 컨테이너 격리를 무력화할 수 있습니다.
💡 쉬운 설명
컨테이너를 실행하는 도구의 계산 오류를 이용해 컨테이너의 보안 벽을 허무는 취약점입니다. 공격자가 조작된 설정을 사용하면 컨테이너 내부에서 호스트 시스템의 자원에 접근할 수 있습니다.
🇺🇸 원문 (English)
runc is a CLI tool for spawning and running containers on Linux according to the OCI specification. In runc, netlink is used internally as a serialization system for specifying the relevant container configuration to the `C` portion of the code (responsible for the based namespace setup of containers). In all versions of runc prior to 1.0.3, the encoder did not handle the possibility of an integer overflow in the 16-bit length field for the byte array attribute type, meaning that a large enough malicious byte array attribute could result in the length overflowing and the attribute contents being parsed as netlink messages for container configuration. This vulnerability requires the attacker to have some control over the configuration of the container and would allow the attacker to bypass the namespace restrictions of the container by simply adding their own netlink payload which disables all namespaces. The main users impacted are those who allow untrusted images with untrusted configurations to run on their machines (such as with shared cloud infrastructure). runc version 1.0.3 contains a fix for this bug. As a workaround, one may try disallowing untrusted namespace paths from your container. It should be noted that untrusted namespace paths would allow the attacker to disable namespace protections entirely even in the absence of this bug.
📍 영향받는 시스템
runc 1.0.3 미만 모든 버전
⚔️ 공격 벡터
신뢰할 수 없는 컨테이너 이미지 및 설정 파일을 통한 netlink 페이로드 주입
🛡️ 대응 방법
runc를 1.0.3 이상의 버전으로 업데이트하거나 신뢰할 수 없는 네임스페이스 경로 사용을 금지함
🔧 검증 코드
출력된 버전이 1.0.3 미만(예: 1.0.2)이면 취약한 상태이며, 1.0.3 이상이면 안전합니다.
runc --version 2>/dev/null | grep -E 'runc version [0-9]+\.[0-9]+\.[0-9]+'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux