CVE-2026-59341 in sealed-secrets정보

요약

\~에 의해 VulDB • 2026. 09. 15.

Sealed Secrets 컨트롤러의 비인증 POST 엔드포인트에 보안 취약점이 존재합니다. spec.template.data 필드에 사용자 정의 Go 템플릿 로직이 포함된 수정된 페이로드를 제출함으로써, 내부 네트워크 접근 권한을 가진 공격자는 디크립션 오라클(복호화 오라클)로 핸들러를 악용하여 모든 봉인된 시크리트의 전체 평문을 복원할 수 있습니다.

POST /v1/verify 및 /v1/rotate 핸들러는 대상 시크리트를 복호화하기 위해 Unseal()을 호출한 후, spec.template.data.*에 있는 모든 Go 템플릿을 디크립션된 페이로드를 평가 컨텍스트로 사용하여 렌더링합니다(pkg/apis/sealedsecrets/v1alpha1/sealedsecret_expansion.go). 템플릿 실행 중 발생하는 오류는 결과 HTTP 응답 상태 코드로 직접 반영됩니다.

AEAD 라벨 바인딩 누락: spec.template.data 필드가 AEAD 인증 데이터(label) 바인딩에서 암호문과 메타데이터 간에 생략되었습니다. 그 결과, 공격자는 대상의 유효한 메타데이터와 encryptedData를 그대로 복사하여 AEAD 복호화 및 라벨 검증을 만족시키면서, spec.template.data 임의 템플릿 로직으로 자유롭게 대체할 수 있습니다.

사이드 채널 오라클: 템플릿 실행 오류는 HTTP 응답 코드로 직접 매핑됩니다. HTTP 200(OK)은 템플릿 실행이 성공했음을 나타내고, HTTP 409(Conflict)는 템플릿 실패를 나타냅니다(예: {{ fail "..." }} 사용 시).

{{ if eq (substr 0 1 .password) "S" }}ok{{ else }}{{ fail "x" }}{{ end }}와 같은 조건문을 주입하면, 공격자는 문자 추측이 맞을 때 HTTP 200 상태 코드를 받고 틀릴 경우 HTTP 409를 받습니다. 이러한 차등 응답은 요청당 하나의 문자 일치 비트(character-equality bit)를 누설시켜, successive 쿼리를 통해 전체 시크리트를 추출할 수 있게 합니다.

공격 벡터 및 전제 조건: 비인증; 컨트롤러의 내부 서비스 포트(:8080)에 대한 네트워크 접근이 필요합니다. 이 서비스는 기본적으로 공개 인터넷에는 노출되지 않지만, Kubernetes 클러스터 내 모든 pod 또는 kubectl port-forward 연결을 통해 접근 가능합니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Vmware

예약하다

2026. 07. 04.

모더레이션

수락

항목

VDB-404087

EPSS

0.00000

출처

Do you know our Splunk app?

Download it now for free!