🔍 CVE-2026-10101

6.3
CVSS Score
MEDIUM
2026-05-29
2026-07-21 15:10
✅ 완료

🇰🇷 한글 설명

ACM/MCE 보조 서비스에서 pull-secret 검증 실패 시 참조된 원본 내용을 InfraEnv.status.conditions[].message에 그대로 기록하는 취약점입니다. 이를 통해 'view' 권한만 가진 네임스페이스 사용자가 직접 접근할 수 없는 Secret의 .dockerconfigjson 데이터를 탈취할 수 있습니다.

💡 쉬운 설명

권한이 낮은 사용자가 원래는 볼 수 없는 비밀번호나 인증 정보를 시스템의 상태 메시지를 통해 몰래 훔쳐볼 수 있는 보안 구멍입니다. 이는 시스템의 접근 제어 규칙을 우회하여 중요한 정보를 노출시킵니다.

🇺🇸 원문 (English)

ACM/MCE assisted-service writes raw referenced pull-secret contents into `InfraEnv.status.conditions[].message` when pull-secret validation fails. A namespace principal with the stock `view` ClusterRole cannot directly read Secrets, but can read `InfraEnv` objects and recover the referenced Secret's `.dockerconfigjson` data from status. This bypasses the Kubernetes/OpenShift RBAC separation between read-only namespace viewers and Secret readers. In the reproduced proof, the same ServiceAccount was denied `get` and `list` on Secrets, but recovered synthetic pull-secret `username`, `password`, `email`, and base64 `auth` fields through `InfraEnv.status`.

📍 영향받는 시스템

ACM/MCE assisted-service가 설치된 Kubernetes/OpenShift 환경

⚔️ 공격 벡터

view 권한을 가진 계정으로 InfraEnv 객체의 status 메시지를 조회하여 Secret 정보 탈취

🛡️ 대응 방법

ACM/MCE assisted-service를 최신 보안 패치가 적용된 버전으로 업데이트하고, status 메시지에 민감 정보가 포함되지 않도록 설정

🔧 검증 코드

명령어 실행 결과로 사용자 이름, 비밀번호 또는 인증 정보(auth)가 포함된 문자열이 출력되면 취약한 상태입니다.

Shell / Script
kubectl get infraenv -n <namespace> -o jsonpath='{.status.conditions[*].message}' | grep -E 'username|password|auth'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Kubernetes