🔍 CVE-2026-40868

8.1
CVSS Score
HIGH
2026-04-21
2026-06-17 10:45
✅ 완료

🇰🇷 한글 설명

Kyverno 1.16.4 미만 버전에서 apiCall 서비스 호출 시 Authorization 헤더가 명시되지 않으면 Kyverno 컨트롤러의 서비스 어카운트 토큰이 자동으로 주입됩니다. 공격자가 제어하는 URL로 정책을 설정할 경우, Kyverno의 권한을 가진 토큰이 외부로 유출될 수 있는 혼동된 대리인(Confused Deputy) 취약점입니다.

💡 쉬운 설명

Kyverno라는 보안 도구가 외부 사이트에 정보를 요청할 때, 자신도 모르게 중요한 비밀번호(토큰)를 함께 보내버리는 문제입니다. 공격자가 만든 가짜 주소로 정보를 보내게 유도하여 관리자 권한을 탈취할 수 있습니다.

🇺🇸 원문 (English)

Kyverno is a policy engine designed for cloud native platform engineering teams. Prior to 1.16.4, kyverno’s apiCall servicecall helper implicitly injects Authorization: Bearer ... using the kyverno controller serviceaccount token when a policy does not explicitly set an Authorization header. Because context.apiCall.service.url is policy-controlled, this can send the kyverno serviceaccount token to an attacker-controlled endpoint (confused deputy). Namespaced policies are blocked from servicecall usage by the namespaced urlPath gate in pkg/engine/apicall/apiCall.go, so this report is scoped to ClusterPolicy and global context usage. This vulnerability is fixed in 1.16.4.

📍 영향받는 시스템

Kyverno versions prior to 1.16.4 (specifically ClusterPolicy and global context usage)

⚔️ 공격 벡터

공격자가 제어하는 외부 URL을 포함한 ClusterPolicy를 생성하여 Kyverno 서비스 어카운트 토큰을 탈취

🛡️ 대응 방법

Kyverno를 1.16.4 버전 이상으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 1.16.4 미만이면 취약한 상태입니다.

Shell / Script
helm list -n kyverno -o json | jq -r '.[] | select(.chart | contains("kyverno")) | .app_version'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Teams