🇰🇷 한글 설명
Kyverno 1.14.1 이하 버전에서 JMESPath 변수 치환을 부적절하게 처리하여 발생하는 서비스 거부(DoS) 취약점입니다. 공격자가 정책을 생성하거나 업데이트할 수 있는 권한이 있다면, 잘못된 JMESPath 함수를 포함한 표현식을 사용하여 Kyverno 워커 스레드와 리포트 컨트롤러 포드를 충돌시킬 수 있습니다.
💡 쉬운 설명
특수하게 조작된 설정을 입력하면 Kyverno라는 보안 관리 프로그램이 갑자기 멈춰버리는 문제입니다. 이로 인해 클라우드 환경의 보안 정책 검사가 중단될 수 있습니다.
🇺🇸 원문 (English)
Kyverno is a policy engine designed for cloud native platform engineering teams. In versions 1.14.1 and below, a Denial of Service (DoS) vulnerability exists due to improper handling of JMESPath variable substitutions. Attackers with permissions to create or update Kyverno policies can craft expressions using the {{@}} variable combined with a pipe and an invalid JMESPath function (e.g., {{@ | non_existent_function }}). This leads to a nil value being substituted into the policy structure. Subsequent processing by internal functions, specifically getValueAsStringMap, which expect string values, results in a panic due to a type assertion failure (interface {} is nil, not string). This crashes Kyverno worker threads in the admission controller and causes continuous crashes of the reports controller pod. This is fixed in version 1.14.2.
📍 영향받는 시스템
Kyverno version 1.14.1 and below
⚔️ 공격 벡터
정책 생성/수정 권한을 가진 공격자가 잘못된 JMESPath 함수를 포함한 {{@}} 변수 표현식을 주입
🛡️ 대응 방법
Kyverno를 최신 버전인 1.14.2 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.14.2 미만(예: 1.14.1 이하)이면 취약한 상태입니다.
kyverno version | grep -E 'Kyverno version'