🇰🇷 한글 설명
containerd의 CRI 구현체에서 ExecSync API 호출 시 컨테이너 내부 프로그램이 containerd 데몬의 메모리를 무제한으로 소비할 수 있는 버그가 발견되었습니다. 이로 인해 시스템의 가용 메모리가 모두 소진되어 다른 정상적인 워크로드에 서비스 거부(DoS)를 일으킬 수 있습니다.
💡 쉬운 설명
컨테이너 안의 프로그램이 시스템의 메모리를 끝없이 잡아먹게 만들어 컴퓨터를 멈추게 할 수 있는 문제입니다. 이로 인해 다른 프로그램들이 제대로 작동하지 못하게 됩니다.
🇺🇸 원문 (English)
containerd is an open source container runtime. A bug was found in the containerd's CRI implementation where programs inside a container can cause the containerd daemon to consume memory without bound during invocation of the `ExecSync` API. This can cause containerd to consume all available memory on the computer, denying service to other legitimate workloads. Kubernetes and crictl can both be configured to use containerd's CRI implementation; `ExecSync` may be used when running probes or when executing processes via an "exec" facility. This bug has been fixed in containerd 1.6.6 and 1.5.13. Users should update to these versions to resolve the issue. Users unable to upgrade should ensure that only trusted images and commands are used.
📍 영향받는 시스템
containerd 1.6.6 및 1.5.13 미만 버전
⚔️ 공격 벡터
컨테이너 내부에서 ExecSync API를 호출하여 메모리 할당을 지속적으로 유도하는 방식
🛡️ 대응 방법
containerd를 1.6.6 또는 1.5.13 이상의 버전으로 업데이트하거나 신뢰할 수 있는 이미지와 명령만 사용하도록 제한
🔧 검증 코드
출력된 버전이 1.5.13 이상 또는 1.6.6 이상인지 확인하여 취약 여부를 판단합니다.
containerd --version 2>/dev/null || ctr --version 2>/dev/null | grep -E '1\.(5\.[0-9]|6\.[6-9]|[7-9]\.)|1\.6\.[6-9]'