🇰🇷 한글 설명
Kuma의 기본 설정이 관리자 부트스트랩 토큰과 서명 키를 제한 없이 모든 웹사이트에 노출하여, 악의적인 페이지에서 크로스 오리진 fetch() 요청으로 관리자 JWT를 탈취할 수 있는 취약점입니다. CorsAllowedDomains: [".*"]와 LocalhostIsAdmin: true 설정이 원인입니다.
💡 쉬운 설명
Kuma 제어 평면의 보안 토큰이 모든 웹사이트에 공개되어 악의적인 페이지가 관리자 권한을 탈취할 수 있습니다. 사용자가 악의적 사이트를 방문하는 동안 Kuma에 접근할 수 있으면 공격이 성공합니다.
🇺🇸 원문 (English)
Kuma is a modern Envoy-based service mesh that can run on every cloud across both Kubernetes and VMs. Prior to 2.7.25, 2.9.15, 2.11.13, 2.12.10, and 2.13.5, the default kuma-cp config leaks the admin bootstrap token and signing keys to any webpage the operator visits while the control plane is reachable from their browser. CorsAllowedDomains: [".*"] reflects any Origin, and LocalhostIsAdmin: true promotes requests from 127.0.0.1 to mesh-system:admin. A cross-origin fetch() from a malicious page returns the admin JWT and signing material. This vulnerability is fixed in 2.7.25, 2.9.15, 2.11.13, 2.12.10, and 2.13.5.
📍 영향받는 시스템
Kuma 2.7.x (~2.7.24), 2.9.x (~2.9.14), 2.11.x (~2.11.12), 2.12.x (~2.12.9), 2.13.x (~2.13.4)
⚔️ 공격 벡터
악의적인 웹페이지에서 크로스 오리진 fetch() 요청으로 Kuma 제어 평면의 관리자 JWT 및 서명 키 탈취
🛡️ 대응 방법
Kuma를 2.7.25, 2.9.15, 2.11.13, 2.12.10, 2.13.5 이상으로 업그레이드하고 CorsAllowedDomains를 제한적 도메인으로 재설정
🔧 검증 코드
버전이 2.7.25, 2.9.15, 2.11.13, 2.12.10, 2.13.5 이상이면 패치된 상태입니다.
kuma-cp --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'