# Kyverno v1.20.0

> Security · 2026-11-12

CEL 및 OCI 기능을 확장하고, 레거시 정책에서 옮겨가는 과정의 제한과 보호 장치를 강화한 릴리스입니다. CLI와 정책 동작도 넓어졌으며, 정확성, 성능, 의존성, 안정성 문제를 수정했습니다. 레거시 정책 실행 제거, 정책 및 차트 제약 변경, 보안 의존성 업데이트를 사용하는 운영 환경은 영향을 확인해야 합니다.

## 조치 필요
- **[security · critical]** `x/net`의 `CVE-2026-78663` 수정
  - `x/net`을 업데이트해 `CVE-2026-78663`을 해결했습니다.
- **[security · high]** `oras.land/oras-go/v2` v2.6.2 업데이트
  - `oras.land/oras-go/v2`를 v2.6.2로 올려 `CVE-2026-50163`을 해결했습니다.
- **[security · high]** `x/net`의 `CVE-2026-56853` 수정
  - `x/net`을 업데이트해 HTTP/2 `ReadHeaderTimeout` 우회 문제인 `CVE-2026-56853`을 해결했습니다.
- **[security · high]** `Go` 1.26.6 업데이트
  - `Go`를 1.26.6으로 올려 표준 라이브러리의 `CVE-2026-56853`을 해결했습니다.
- **[security · high]** `miekg/dns`의 `CVE-2026-46600` 수정
  - `miekg/dns`를 업데이트해 DNS 파싱 중 발생하는 중단 문제인 `CVE-2026-46600`을 해결했습니다.
- **[security · high]** `Go` 1.27.2 업데이트
  - `Go`를 1.27.2로 올려 `CVE-2026-97031`을 해결했습니다.
- **[security · high]** `golang.org/x/net`의 `CVE-2026-78669` 수정
  - `golang.org/x/net`을 업데이트해 `CVE-2026-78669`을 해결했습니다.
- **[security · medium]** Go 1.27.3 업데이트
  - Go를 1.27.3으로 올려 `CVE-2026-111943`을 해결했습니다.
- **[security]** 보안 의존성 갱신
  - `oras-go`, `x/mod`, Go 도구 모음의 취약점을 해결하도록 의존성을 갱신했습니다.
- **[security]** `rekor`의 `GO-2026-5932` 수정
  - `rekor`를 교체해 `GO-2026-5932`를 해결했습니다.

## 영향 확인
- **[security]** `apiCall.service`의 차단 목록 우회 수정
  - `apiCall.service`를 설정한 경우 적용됩니다.
  - `apiCall.service` 송신에서 IPv6 내장 IPv4 주소로 차단 목록을 우회할 수 있던 문제를 수정했습니다.
- **[breaking]** `request.operation` 조건의 값 형식 검증 강화
  - `request.operation`을 설정한 경우 적용됩니다.
  - `request.operation` 조건에는 문자열이 아닌 값을 사용할 수 없도록 검증합니다.
- **[breaking]** 빈 `matchConstraints`를 가진 `ImageValidatingPolicy` 거부
  - 비어 있는 `matchConstraints`로 `ImageValidatingPolicy`를 설정한 경우 적용됩니다.
  - 비어 있는 `matchConstraints`를 가진 `ImageValidatingPolicy`는 허용하지 않습니다.
- **[breaking]** 이름공간 정책의 `globalContext` 사용 제한
  - 이름공간 정책에 `globalContext`를 설정한 경우 적용됩니다.
  - 이름공간 정책에서는 `globalContext`를 사용할 수 없습니다.
- **[breaking]** 레거시 정책 API 생성 및 `spec` 업데이트 차단
  - 레거시 정책 API를 사용하는 경우 적용됩니다.
  - 레거시 정책 API의 새 리소스 생성과 `spec` 업데이트를 차단합니다.
- **[breaking]** 레거시 정책 CR 활성화 게이트 추가
  - 설치 또는 업그레이드 때 레거시 정책 CR을 활성화한 경우 적용됩니다.
  - 설치와 업그레이드 시 레거시 정책 CR을 위한 기본 활성화 게이트를 추가했습니다.
- **[breaking]** CLI의 레거시 정책 매니페스트 차단
  - CLI에서 `apply` 또는 `test`를 실행한 경우 적용됩니다.
  - CLI의 `apply`와 `test`는 레거시 정책 매니페스트를 차단하며, 마이그레이션을 위한 예외 경로를 추가했습니다.
- **[breaking]** CEL `PolicyExceptions`의 `exceptionNamespace` 적용
  - CEL `PolicyExceptions`에 `exceptionNamespace`를 설정한 경우 적용됩니다.
  - CEL `PolicyExceptions`에 설정한 `exceptionNamespace`를 웹훅이 적용합니다.
- **[breaking]** 의존성이 없는 레거시 정책 쓰기 거부
  - 형식이 지정된 정책 의존성 없이 레거시 정책을 쓰는 경우 적용됩니다.
  - 형식이 지정된 정책 의존성 없이 수행하는 레거시 정책 쓰기를 거부합니다.
- **[breaking]** 승인 바이너리의 레거시 정책 실행 제거
  - 승인 바이너리를 사용하는 경우 적용됩니다.
  - 승인 바이너리에서 레거시 정책 실행을 제거했습니다.
- **[breaking]** 백그라운드 컨트롤러의 레거시 정책 실행 제거
  - 백그라운드 컨트롤러를 실행하는 경우 적용됩니다.
  - 백그라운드 컨트롤러에서 레거시 정책 실행을 제거했습니다.
- **[breaking]** 리포트 컨트롤러의 레거시 정책 평가 제거
  - 리포트 컨트롤러를 실행하는 경우 적용됩니다.
  - 리포트 컨트롤러에서 레거시 정책 평가를 제거했습니다.
- **[breaking]** 레거시 CLI 실행 및 정책 작성 분기 제거
  - 레거시 CLI 실행을 사용하는 경우 적용됩니다.
  - 레거시 CLI 실행과 정책 작성 분기를 삭제했습니다.
- **[breaking]** 레거시 CRD 스키마 동결
  - 레거시 CRD 스키마를 설정한 경우 적용됩니다.
  - 공유 Kyverno API 형식을 준비하고 레거시 CRD 스키마를 동결했습니다.
- **[breaking]** CEL 정책 최소 버전 1.17.0
  - CEL 정책을 사용하는 경우 적용됩니다.
  - CEL 정책의 최소 버전을 1.17.0으로 올렸습니다.
- **[breaking]** 레거시 `kyverno.io` 정책 엔진 제거
  - 레거시 `kyverno.io` 정책 엔진을 실행하는 경우 적용됩니다.
  - 레거시 `kyverno.io` 정책 엔진을 삭제했습니다.
- **[breaking]** 레거시 `kyverno.io` Go API 제거
  - 레거시 `kyverno.io` Go API에 의존하는 경우 적용됩니다.
  - 레거시 `kyverno.io` Go API를 삭제하고 클라이언트를 다시 생성했습니다.

## 미리 준비
- **[deprecated]** `jmesPath` 프로젝션 사용 중단 예정
  - `jmesPath` 프로젝션을 사용하는 경우 적용됩니다.
  - `jmesPath` 프로젝션을 더 이상 권장하지 않으며, 사용량을 측정합니다.

## 그 밖에 기록된 변경
- 228 (defect_corrected 137, value_changed 60, added 28, constraint_changed 2, removed 1)

[분석 자세히 보기](https://ratatosk.io/ko/releases/kyverno/v1.20.0)

[원본 릴리스 노트](https://github.com/kyverno/kyverno/releases/tag/v1.20.0)
