🇰🇷 한글 설명
Envoy Gateway의 Lua 검증 과정에서 중복된 경로 구분자(//)를 제대로 처리하지 못하는 취약점이 발견되었습니다. 공격자는 이를 악용하여 게이트웨이 컨트롤러 포드의 임의 파일을 읽을 수 있으며, 이를 통해 Kubernetes 서비스 계정 토큰이나 TLS 인증서와 같은 민감한 정보를 탈취할 수 있습니다.
💡 쉬운 설명
파일 경로를 확인할 때 슬래시가 두 번 들어간 경우(예: //etc/passwd)를 제대로 인식하지 못하는 허점이 있습니다. 이를 이용해 해커가 서버 내부의 중요한 비밀번호나 인증 파일을 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
Envoy Gateway is an open source project for managing Envoy Proxy as a standalone or Kubernetes-based application gateway. Prior to 1.7.4 and 1.8.1, to_absolute_normalized_path in internal/gatewayapi/luavalidator/security.lua does not collapse redundant separators before is_critical_path evaluates Lua submitted through EnvoyExtensionPolicy during default Strict validation. Linux resolves a double-slash absolute path as the corresponding single-slash path, but the validator does not match the redundant-separator form, allowing submitted Lua to read arbitrary files from the gateway controller pod. Exposed files can include Kubernetes service-account tokens, TLS certificates, and process environment data, and the disclosed credentials can provide access to sensitive Kubernetes API Server or Gateway xDS server information. This issue is fixed in versions 1.7.4 and 1.8.1.
📍 영향받는 시스템
Envoy Gateway versions prior to 1.7.4 and 1.8.1
⚔️ 공격 벡터
EnvoyExtensionPolicy를 통해 제출된 Lua 스크립트 내에 중복된 경로 구분자를 포함시켜 검증을 우회하고 임의 파일 읽기 수행
🛡️ 대응 방법
Envoy Gateway를 1.7.4 또는 1.8.1 이상의 버전으로 업데이트
🔧 검증 코드
출력된 envoy-gateway의 버전이 1.7.4 또는 1.8.1 미만인지 확인
helm list -n envoy-gateway-namespace | grep envoy-gateway