🇰🇷 한글 설명
Flannel의 실험적 Extension 백엔드에서 커맨드 인젝션 취약점이 발견되었습니다. Kubernetes 노드 주석을 수정할 수 있는 공격자가 모든 Flannel 노드에서 루트 권한으로 임의의 명령을 실행할 수 있습니다.
💡 쉬운 설명
네트워크 설정값에 숨겨진 명령어를 넣어 서버를 원격 제어할 수 있는 취약점입니다. 이를 통해 해커가 시스템 전체의 관리자 권한을 획득할 수 있습니다.
🇺🇸 원문 (English)
Flannel is a network fabric for containers, designed for Kubernetes. The Flannel project includes an experimental Extension backend that allows users to easily prototype new backend types. In versions of Flannel prior to 0.28.2, this Extension backend is vulnerable to a command injection that allows an attacker who can set Kubernetes Node annotations to achieve root-level arbitrary command execution on every flannel node in the cluster. The Extension backend's SubnetAddCommand and SubnetRemoveCommand receive attacker-controlled data via stdin (from the `flannel.alpha.coreos.com/backend-data` Node annotation). The content of this annotation is unmarshalled and piped directly to a shell command without checks. Kubernetes clusters using Flannel with the Extension backend are affected by this vulnerability. Other backends such as vxlan and wireguard are unaffected. The vulnerability is fixed in version v0.28.2. As a workaround, use Flannel with another backend such as vxlan or wireguard.
📍 영향받는 시스템
Flannel v0.28.2 미만 버전 (Extension 백엔드 사용 시)
⚔️ 공격 벡터
Kubernetes Node annotation의 'flannel.alpha.coreos.com/backend-data' 필드에 악성 명령어 삽입
🛡️ 대응 방법
Flannel을 v0.28.2 버전으로 업데이트하거나 vxlan 또는 wireguard 백엔드로 전환하십시오.
🔧 검증 코드
출력된 버전이 v0.28.2보다 낮은 버전일 경우 취약한 상태입니다.
flannel --version | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+'