🇰🇷 한글 설명
External Secrets Operator 0.20.2 버전부터 1.2.0 미만 버전에서 senhasegura DSM 제공자를 위한 getSecretKey 템플릿 함수가 보안 메커니즘을 우회하여 네임스페이스 간의 비밀 정보를 가져올 수 있는 취약점이 발견되었습니다. 이 함수는 보안 가드레일을 무시하고 다른 네임스페이스의 비밀을 탈취할 수 있는 위험이 있습니다.
💡 쉬운 설명
특정 소프트웨어의 기능 오류로 인해, 원래는 접근할 수 없는 다른 방의 비밀번호를 몰래 가져올 수 있는 보안 구멍이 생겼습니다. 이 기능은 보안 규칙을 무시하고 작동하기 때문에 위험합니다.
🇺🇸 원문 (English)
External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.20.2 and prior to version 1.2.0, the `getSecretKey` template function, while introduced for senhasegura Devops Secrets Management (DSM) provider, has the ability to fetch secrets cross-namespaces with the roleBinding of the external-secrets controller, bypassing our security mechanisms. This function was completely removed in version 1.2.0, as everything done with that templating function can be done in a different way while respecting External Secrets Operator's safeguards As a workaround, use a policy engine such as Kubernetes, Kyverno, Kubewarden, or OPA to prevent the usage of `getSecretKey` in any ExternalSecret resource.
📍 영향받는 시스템
External Secrets Operator version 0.20.2 to < 1.2.0
⚔️ 공격 벡터
getSecretKey 템플릿 함수를 사용하여 컨트롤러의 권한을 악용해 다른 네임스페이스의 비밀 정보를 탈취
🛡️ 대응 방법
External Secrets Operator를 1.2.0 이상 버전으로 업데이트하거나, Kyverno/OPA 등의 정책 엔진을 사용하여 getSecretKey 사용을 차단
🔧 검증 코드
출력된 결과에서 external-secrets의 버전을 확인하여 1.2.0 미만인지 체크
helm list -A | grep external-secrets