🇰🇷 한글 설명
KubeVela의 Terraform 원격 구성 로더에서 심볼릭 링크를 통해 /dev/zero와 같은 무한 스트림을 읽을 수 있는 취약점이 발견되었습니다. 공격자가 ComponentDefinition 객체를 생성하거나 수정할 수 있다면, 메모리 고갈을 유도하여 vela-core 컨트롤러를 중단시키거나 클러스터 전체에 영향을 줄 수 있습니다.
💡 쉬운 설명
악의적인 사용자가 가짜 파일을 만들어 시스템이 끝없이 데이터를 읽게 함으로써 컴퓨터의 메모리를 모두 써버리게 만드는 공격입니다. 이로 인해 서비스 운영을 관리하는 핵심 프로그램이 멈추거나 시스템이 느려질 수 있습니다.
🇺🇸 원문 (English)
KubeVela is an open source application delivery platform. Prior to 1.9.14, from 1.10.0-alpha.1 until 1.10.9, and from 1.11.0-alpha.1 until 1.11.0-alpha.4, the Terraform remote configuration loader in pkg/controller/utils/capability.go, GetTerraformConfigurationFromRemote, clones a repository supplied through a core.oam.dev/v1beta1 ComponentDefinition and follows repository-controlled variables.tf or main.tf symlinks. A user with permission to create or update ComponentDefinition objects can point variables.tf to /dev/zero through terraform.path, after which os.Stat and os.ReadFile follow the link and read an unbounded stream before ParseTerraformVariables or HCL parsing can reject the content. The read can exhaust memory, OOM-kill the cluster-wide vela-core controller, cause repeated Pod restarts, and pressure node memory when no effective container limit is configured. This issue is fixed in versions 1.9.14, 1.10.9, and 1.11.0-alpha.4.
📍 영향받는 시스템
KubeVela 1.9.0 미만(1.9.14 미만), 1.10.0-alpha.1 ~ 1.10.9, 1.11.0-alpha.1 ~ 1.11.0-alpha.4
⚔️ 공격 벡터
ComponentDefinition 객체의 terraform.path를 조작하여 /dev/zero와 같은 무한 스트림 심볼릭 링크를 참조하도록 유도
🛡️ 대응 방법
KubeVela를 수정된 버전인 1.9.14, 1.10.9 또는 1.11.0-alpha.4 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 결과로 위에서 명시된 보안 패치 버전이 출력되면 취약점이 해결된 상태입니다.
vela version | grep -E '1.9.14|1.10.9|1.11.0-alpha.4'