🇰🇷 한글 설명
etcd의 TLS 리스너에 접근 가능한 네트워크 공격자가 ClientHello를 전송하지 않는 다수의 TCP 연결을 생성하여 메모리 고갈을 유도할 수 있습니다. 이로 인해 etcd 프로세스의 가용성이 상실되며, Kubernetes를 백엔드로 사용하는 경우 컨트롤 플레인 전체에 영향을 줄 수 있습니다.
💡 쉬운 설명
공격자가 가짜 연결을 끊임없이 만들어 서버의 메모리를 가득 채워 시스템을 멈추게 만드는 공격입니다. 이로 인해 클러스터 전체의 관리 기능이 마비될 수 있습니다.
🇺🇸 원문 (English)
etcd is a distributed key-value store for the data of a distributed system. Prior to versions 3.5.33, 3.6.14, and 3.7.1, a network attacker who can reach an etcd TLS listener can open many TCP connections and never send a ClientHello. In client/pkg/transport/listener_tls.go, each connection handled by tlsListener.acceptLoop spawns a goroutine that blocks indefinitely inside tls.Conn.Handshake() and remains tracked in the pending map. Unbounded goroutine and map growth can exhaust memory in the etcd process, causing loss of availability for the cluster and, when etcd backs Kubernetes, the control plane. This issue is fixed in versions 3.5.33, 3.6.14, and 3.7.1.
📍 영향받는 시스템
etcd versions prior to 3.5.33, 3.6.14, and 3.7.1
⚔️ 공격 벡터
etcd TLS 리스너에 접근 가능한 네트워크를 통한 무제한 TCP 연결 시도 (DoS)
🛡️ 대응 방법
etcd를 버전 3.5.33, 3.6.14 또는 3.7.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 etcd 버전이 취약점이 해결된 버전(3.5.33, 3.6.14, 3.7.1 이상)인지 확인합니다.
etcd --version | grep -E '3.5\.(3[3-9]|[4-9][0-9])|3.6\.(1[4-9]|[2-9][0-9])|3.7\.[1-9]'