🔍 CVE-2026-122310

9.9
CVSS Score
CRITICAL
2026-11-05
2026-11-05 14:58
✅ 완료

🇰🇷 한글 설명

Kyverno 1.19.1 이상 1.19.2 미만 버전에서 Policy의 context.apiCall urlPath는 정제(cleaning) 후 검증되지만, 실제로는 원본 경로가 실행됩니다. Kubernetes 클라이언트는 원본 경로의 fragment나 query 부분을 무시하므로, 이를 이용하면 검증을 우회할 수 있습니다. 네임스페이스 범위 사용자가 Policy를 생성할 수 있다면 이 취약점으로 Kyverno의 ServiceAccount 권한을 획득해 클러스터 관리자 권한에 도달할 수 있습니다.

💡 쉬운 설명

Kyverno라는 쿠버네티스 정책 도구의 입력 검사가 허술해서, 일반 사용자가 특정 문자를 섞어 검사를 피할 수 있습니다. 이를 통해 도구가 가진 강력한 권한을 빌려 클러스터 전체를 장악할 수 있습니다.

🇺🇸 원문 (English)

Kyverno from 1.19.1 before 1.19.2 validates a Policy's context.apiCall urlPath after cleaning it but executes the raw path, whose fragment or query the Kubernetes client discards. A namespace-scoped user who can create a Policy can hide ../ segments behind # or ? to reach cluster-scoped endpoints with Kyverno's ServiceAccount, gaining cluster admin.

📍 영향받는 시스템

Kyverno 1.19.1 이상 1.19.2 미만 (쿠버네티스 클러스터에 배포된 Kyverno)

⚔️ 공격 벡터

네임스페이스 권한으로 Policy를 생성하면서 urlPath에 '#' 또는 '?' 뒤에 '../' 세그먼트를 숨겨 클러스터 범위 엔드포인트에 접근

🛡️ 대응 방법

Kyverno를 1.19.2 이상으로 업그레이드하고, Policy 생성 권한을 신뢰된 관리자로 제한

🔧 검증 코드

출력된 이미지 태그가 1.19.2 이상이면 패치된 버전이며, 1.19.1 또는 그 이전 1.19.x 버전이면 취약한 상태입니다.

Shell / Script
kubectl get deployment kyverno -n kyverno -o jsonpath='{.spec.template.spec.containers[0].image}'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Kubernetes