🇰🇷 한글 설명
CRI-O의 컨테이너 생성 환경 변수 처리 과정에서 발생하는 결함으로, 특정 OCI 이미지의 환경 변수 설정에 '=' 문자가 없을 경우 발생합니다. 이로 인해 Go 런타임 패닉이 발생하여 crio 데몬이 충돌하며, 결과적으로 노드 상의 모든 워크로드에 대한 컨테이너 런타임 서비스가 중단됩니다.
💡 쉬운 설명
잘못된 형식을 가진 컨테이너 이미지를 실행하려고 하면 관리 프로그램이 갑자기 꺼져버리는 문제입니다. 이 문제가 발생하면 해당 서버에서 돌아가던 모든 컨테이너 서비스가 멈추게 됩니다.
🇺🇸 원문 (English)
A flaw was found in CRI-O's container-creation environment-variable handling
(`mergeEnvs` in `server/utils.go`, consumed by `setupContainerEnvironmentAndWorkdir` in
`server/container_create.go`). When a `CreateContainer` request supplies a `nil` CRI
`Envs` field, CRI-O falls back to using the target OCI image's `config.Env` entries
unfiltered, in contrast to the normal merge path, which validates each entry for a
`key=value` form before use. An OCI image whose `config.Env` contains an entry with no
`=` character (e.g. a bare `NOEQUALS` string) causes CRI-O to split that entry into a
single-element slice and then index its second element, which is out of range. This
triggers an unrecovered Go runtime panic in the `crio` daemon process, crashing it and
terminating the container-runtime service for all workloads on the node until it is
restarted.
📍 영향받는 시스템
CRI-O (환경 변수 처리 로직이 포함된 버전)
⚔️ 공격 벡터
환경 변수에 '=' 문자가 포함되지 않은 악의적인 OCI 이미지를 사용하여 컨테이너 생성을 요청함
🛡️ 대응 방법
CRI-O를 최신 보안 패치가 적용된 버전으로 업데이트하거나, 환경 변수 형식이 올바른 이미지만 사용하도록 제한함
🔧 검증 코드
출력된 CRI-O 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H
💻 영향받는 소프트웨어
Windows iSCSI Target Service