🇰🇷 한글 설명
containerd의 CRI 구현체에서 터미널 크기 조정 이벤트를 처리하는 과정 중 메모리 누수가 발생하는 취약점이 발견되었습니다. TTY 요청 시 프로세스 실행에 실패하면 고루틴이 수신자 없이 대기 상태로 남아 호스트의 메모리를 고갈시킬 수 있습니다.
💡 쉬운 설명
컨테이너를 실행할 때 특정 오류가 발생하면 컴퓨터의 메모리를 계속 잡아먹어 시스템이 느려지거나 멈출 수 있는 문제입니다. 이를 방지하려면 컨테이너 관리 소프트웨어를 최신 버전으로 업데이트해야 합니다.
🇺🇸 원문 (English)
containerd is an open source container runtime. A bug was found in containerd's CRI implementation where a user can exhaust memory on the host. In the CRI stream server, a goroutine is launched to handle terminal resize events if a TTY is requested. If the user's process fails to launch due to, for example, a faulty command, the goroutine will be stuck waiting to send without a receiver, resulting in a memory leak. Kubernetes and crictl can both be configured to use containerd's CRI implementation and the stream server is used for handling container IO. This bug has been fixed in containerd 1.6.12 and 1.5.16. Users should update to these versions to resolve the issue. Users unable to upgrade should ensure that only trusted images and commands are used and that only trusted users have permissions to execute commands in running containers.
📍 영향받는 시스템
containerd 1.6.12 미만 및 1.5.16 미만 버전
⚔️ 공격 벡터
잘못된 명령어를 실행하여 TTY 요청 시 프로세스 실행을 의도적으로 실패시켜 메모리 누수 유도
🛡️ 대응 방법
containerd를 1.6.12 또는 1.5.16 이상의 버전으로 업데이트
🔧 검증 코드
명령어 실행 결과로 보안 패치가 적용된 버전 번호가 출력되면 안전합니다.
containerd --version 2>/dev/null | grep -E '1.6\.(1[2-9]|[2-9][0-9])|1.5\.(1[6-9]|[2-9][0-9])'