🇰🇷 한글 설명
cert-manager의 특정 버전에서 네임스페이스 사용자가 검증 없이 Challenge 리소스를 생성할 수 있는 취약점이 발견되었습니다. 공격자는 이를 통해 ClusterIssuer의 DNS 자격 증명을 탈취하거나 DNS01 솔버 선택기를 우회하여 민감한 API 키 정보를 노출시킬 수 있습니다.
💡 쉬운 설명
권한이 낮은 사용자가 가짜 인증 요청을 만들어 시스템의 중요한 DNS 관리자 비밀번호를 훔쳐낼 수 있는 문제입니다. 이로 인해 공격자가 도메인 관리 권한을 가질 위험이 있습니다.
🇺🇸 원문 (English)
cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates. From 1.18.0 until 1.19.6 and 1.20.3, Challenge resources under acme.cert-manager.io can be created directly by namespace users without admission validation tying the Challenge to an Order, owner reference, or Issuer-selected solver, allowing attacker-controlled Challenge.spec.solver values referencing a ClusterIssuer to bypass DNS01 solver selectors such as dnsZones, dnsNames, and matchLabels and cause cert-manager to use ClusterIssuer DNS credentials for attacker-selected provider settings and DNS names, including disclosure of X-Api-User and X-Api-Key headers for acme-dns. This issue is fixed in versions 1.19.6 and 1.20.3.
📍 영향받는 시스템
cert-manager 1.18.0 ~ 1.19.6 및 1.20.3 미만 버전
⚔️ 공격 벡터
네임스페이스 사용자가 검증되지 않은 Challenge 리소스를 생성하여 ClusterIssuer의 권한을 오용함
🛡️ 대응 방법
cert-manager를 1.19.6 또는 1.20.3 이상의 보안 패치 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.19.6 또는 1.20.3 이상인지 확인하여 취약 여부를 판단합니다.
kubectl get pods -A -l app.kubernetes.io/name=cert-manager -o jsonpath='{.items[*].metadata.labels.app\.kubernetes\.io/version}'