🔍 CVE-2026-105311

7.7
CVSS Score
HIGH
2026-10-20
2026-11-03 17:17
✅ 완료

🇰🇷 한글 설명

StreamsHub Console operator가 혼동된 대리인(Confused Deputy)으로 동작하여 발생하는 취약점입니다. 권한이 있는 테넌트가 Console 커스텀 리소스를 생성할 때 특정 네임스페이스를 지정하면, 오퍼레이터가 클러스터 전체 권한을 이용해 타겟 네임스페이스의 KafkaUser Secret을 읽어 공격자의 네임스페이스로 평문 복사할 수 있습니다.

💡 쉬운 설명

관리자 권한을 가진 프로그램이 사용자의 요청을 잘못 처리하여, 다른 사용자의 비밀번호나 인증 키를 공격자에게 전달해 주는 보안 결함입니다. 이를 통해 공격자는 허가되지 않은 다른 구역의 중요한 정보를 훔칠 수 있습니다.

🇺🇸 원문 (English)

The StreamsHub Console operator acts as a confused deputy: a Kubernetes tenant with permission to create a Console custom resource can set spec.kafkaClusters[].credentials.kafkaUser.namespace to any namespace. The operator, running with cluster-wide Secrets RBAC, reads the victim-namespace KafkaUser Secret (SASL credentials or TLS private keys) and writes the plaintext material into a Secret in the attacker's namespace. No same-namespace check or allowlist exists anywhere in the code path.

📍 영향받는 시스템

StreamsHub Console operator (버전 미상)

⚔️ 공격 벡터

Console 커스텀 리소스의 spec.kafkaClusters[].credentials.kafkaUser.namespace 필드에 타겟 네임스페이스를 입력하여 Secret 탈취

🛡️ 대응 방법

오퍼레이터 코드에 네임스페이스 일치 여부 검증 로직을 추가하거나, 허용된 네임스페이스 목록(Allowlist)을 적용해야 합니다.

🔧 검증 코드

출력된 결과에 본인의 네임스페이스가 아닌 다른 네임스페이스가 포함되어 있다면 취약한 설정이 존재할 가능성이 높습니다.

Shell / Script
kubectl get console.streamshub.io -A -o jsonpath='{.items[*].spec.kafkaClusters[*].credentials.kafkaUser.namespace}'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

💻 영향받는 소프트웨어

Kubernetes