릴리즈
CNCF graduated·incubating 프로젝트 릴리즈 노트의 AI 분석.
Kubescape v4.0.10은 기능 추가와 보안 강화가 함께 담긴 릴리스로, 스캔 완료 웹훅의 SSRF 취약점을 막고 config.json 권한과 입력 검증을 강화했으며 죽은 CRD를 정리했습니다. 여기에 `operator remediate`, 암호화 리포트 복호화 같은 신규 기능과 다수의 버그 수정이 함께 포함되었고, 이번 릴리스에서 공개된 CVE 추적 취약점은 없습니다.
security스캔 완료 웹훅 SSRF 방어 강화
스캔 완료 웹훅 콜백에 SSRF 방어 로직이 추가되었습니다. 이 콜백 기능을 사용 중이라면, 조작된 콜백 URL로 인한 아웃바운드 요청 악용을 막기 위해 업그레이드를 권장합니다.
breakingconfig.json 권한을 소유자 전용으로 제한
config.json 파일 권한이 기존보다 넓은 접근 범위에서 소유자 전용으로 변경되었습니다. 다른 사용자 계정으로 이 파일에 접근하는 자동화나 툴이 있다면 접근 실패가 발생할 수 있으니 확인이 필요합니다.
breaking고립된 SecurityException CRD 제거
설치조차 되지 않던 고립된 SecurityException CRD가 제거되었습니다. 매니페스트나 문서에서 이 CRD를 참조하던 경우에만 해당되며, 원래 동작하지 않았으므로 기능적 영향은 없습니다.
enhancement--format과 VAP 컨트롤 검증 강화
--format 플래그는 스캔 시작 전에 잘못된 값을 걸러내고, VAP 구성 가능 컨트롤은 이제 params를 필수로 요구합니다. 검증 없이 --format을 스크립트에 넘기거나 params 없이 VAP 컨트롤을 실행하던 경우, 이제 조용히 넘어가지 않고 즉시 오류로 실패합니다.
주요 변경 (8)
- 스캔 완료 웹훅 콜백에 SSRF 방어 로직을 추가해 아웃바운드 알림의 요청 위조 취약점을 막았습니다.
- config.json 권한을 소유자 전용으로 좁혀, 기존 설치본의 기본 파일 접근 방식이 바뀝니다.
- 설치조차 안 되던 고립 상태의 SecurityException CRD와 관련 테스트를 제거했습니다.
- --format 플래그가 스캔 전에 잘못된 값을 거부하고, VAP 구성 가능 컨트롤은 params를 필수로 요구하도록 검증이 강화됐습니다.
- `operator remediate` CLI 서브커맨드(annotate, dry-run 모드), VAP 엔진용 CEL 환경 빌더/평가기, DEK 래핑을 포함한 암호화 리포트 복호화 기능이 새로 추가됐습니다.
- GVR 조회 실패를 감지해 감점하는 스캔 커버리지 점수 지표와, OPA 프로세서의 컨트롤별 평가 타임아웃(타임아웃 시 0점 처리, 부분 결과 폐기)이 추가됐습니다.
- nil ScanData, 조직명 없는 이미지 이름 파싱, 스캔 실행 고루틴 등 여러 패닉을 수정했고 스캔 리스너 서버에 HTTP 타임아웃을 설정했습니다.
- 리소스 중복 제거, 호스트 센서 infoMap 병합, SARIF 라인 번호 해석, 출력 덮어쓰기 방지, 고립된 RoleBinding 처리 등 10여 개의 소소한 수정과 Go 1.26 전환도 포함됩니다.
v1.18.1은 CIDR 매칭 동작과 직렬화 결정성을 고치고 실험적 플래그를 BatchCheck까지 확장한 routine 패치입니다. 브레이킹 체인지나 CVE는 없지만, in_cidr 수정으로 IPv4-mapped IPv6 주소의 매칭 동작이 바뀝니다.
breakingin_cidr이 IPv4-mapped IPv6 주소를 IPv4 CIDR과 매칭시킴
무조건 적용됩니다: in_cidr 조건이 IPv4-mapped IPv6 주소(예: ::ffff:192.168.1.1)를 매칭 전에 IPv4 형태로 정규화하므로, 이제 192.168.1.0/24 같은 IPv4 CIDR과 매칭됩니다. 이런 주소가 IPv4 범위에서 제외되길 기대했다면 in_cidr을 사용하는 인가 모델을 점검하세요.
주요 변경 (4)
- in_cidr 조건이 IPv4-mapped IPv6 주소(RFC 4291 §2.5.5.2)를 IPv4 형태로 정규화해서, ::ffff:192.168.1.1이 192.168.1.0/24와 매칭됨
- weighted_graph_check, Expand, ListUsers에 진단 로깅 추가: 향후 v2 Check 판정이 v1과 달라질 수 있는 모델을 표시함, 지금 당장 조치는 필요 없음
- 실험적 weighted_graph_check 플래그가 BatchCheck까지 확장됨: 각 배치 항목을 weighted graph 알고리즘으로 평가하고, 비종단 오류 시 항목별로 표준 알고리즘으로 폴백함
- serialized_protobuf 컬럼에 대한 인가 모델 직렬화가 결정론적 proto marshaling을 사용하도록 변경되어, map 키 타입 정의를 가진 모델의 저장 바이트 불일치 문제를 고침
Keycloak 26.6.4는 CVE 8건을 수정하는 보안 릴리스로, critical 등급 두 건(권한 상승, JWT 인증 우회)과 high 등급 인가 우회 네 건이 포함되어 있습니다. 가능한 빨리 업그레이드하는 것을 권장하며, Quarkus도 3.33.2.1로 함께 올라갔습니다.
securitycritical 등급 취약점 두 건: 그룹 관리자 권한 상승, JWT 인증 우회
CVE-2026-9099는 그룹 관리자가 realm-admin 권한까지 획득할 수 있는 취약점이고, CVE-2026-11800은 JWT 알고리즘 혼동을 이용한 인증 우회입니다. 둘 다 critical 등급이므로 가능한 빨리 26.6.4로 업그레이드해야 합니다.
securityhigh 등급 인가·접근 제어 우회 취약점 네 건
CVE-2026-9705(등록 액세스 토큰을 이용한 클라이언트 탈취), CVE-2026-9795(스코프 매핑 오류로 인한 권한 상승), CVE-2026-9799(UMA 권한 티켓 우회), CVE-2026-9800(Policy Enforcer의 URI 비교 오류로 인한 인가 우회) 모두 high 등급입니다. UMA 인가, 세분화된 스코프 매핑, Policy Enforcer를 사용 중이라면 이번 업그레이드를 우선순위에 두세요.
securitymedium 등급 취약점 두 건: 정보 노출과 XSS
CVE-2026-9083(파일시스템 경로 탐지를 통한 정보 노출)과 CVE-2026-9086(대소문자 무시 URI 검증 우회로 인한 XSS)은 medium 등급으로 함께 수정되었습니다.
주요 변경 (5)
- 이번 릴리스에서 CVE 8건이 수정되었고 그중 두 건이 critical입니다: CVE-2026-9099(그룹 관리자의 realm-admin 권한 상승), CVE-2026-11800(JWT 알고리즘 혼동을 통한 인증 우회)
- high 등급 수정 네 건: 등록 액세스 토큰을 이용한 클라이언트 탈취(CVE-2026-9705), 스코프 매핑 권한 상승(CVE-2026-9795), UMA 권한 티켓 우회(CVE-2026-9799), Policy Enforcer의 URI 비교 오류로 인한 인가 우회(CVE-2026-9800)
- medium 등급 수정 두 건: 파일시스템 경로 탐지 정보 노출(CVE-2026-9083), URI 검증 우회 XSS(CVE-2026-9086)
- Quarkus 의존성이 3.33.2.1로 업그레이드됨
- 그 외 자잘한 빌드·패키징 수정: 26.2 브랜치의 Infinispan protoschema 빌드 문제, JS와 Admin Client 테스트 스위트 CI 수정, keycloak-api-docs-dist 패키징 수정, 마이그레이션 가이드 참조 오류 수정
v1.18.0은 버그픽스 중심 릴리스로, 운영자가 반드시 확인해야 할 변경 사항은 RFC 9110 준수를 위한 User-Agent 헤더 하이픈 추가 하나입니다. 나머지는 런타임 개선, 포매터 및 커버리지 도구 수정, Go 툴체인 버전 갱신입니다.
breakingUser-Agent 헤더 형식 변경 (RFC 9110 준수)
OPA가 HTTP 요청 시 전송하는 User-Agent 헤더가 'Open Policy Agent/<version> (<os>, <arch>)'에서 'Open-Policy-Agent/<version> (<os>, <arch>)'로 바뀌었습니다('Open'과 'Policy' 사이에 하이픈 추가). 이전 문자열을 정확히 일치시키는 서버 측 로그 필터, WAF 규칙, 접근 정책이 있다면 v1.18.0 업그레이드 후 반드시 수정해야 합니다.
주요 변경 (7)
- User-Agent 헤더가 'Open Policy Agent'에서 'Open-Policy-Agent'(하이픈 추가)로 변경됨 — 이전 문자열 정확 일치 필터나 WAF 규칙은 업그레이드 전 점검 필요
- 컨테이너 환경 리소스 제한 복원 및 확장: GOMAXPROCS 자동 설정 복구, GOMEMLIMIT 자동 설정 신규 지원
- opa fmt 교정 버그 다수 수정: 단일 항목 이터러블의 멀티라인 형식 유지, 주석 뒤 with 절 유실 문제 해결
- opa test --coverage 개선: 리포트에 범위 정보 추가, 인라인 규칙 헤드 추적, 논리곱(conjunction) 표현식 커버리지 지원
- future.keywords.not을 every 블록 내부에서 사용할 때 발생하던 부분 평가 회귀 버그 수정, every 내부 컴프리헨션의 변수 네임스페이싱 문제도 함께 수정
- 성능 개선: object.get 메모리 할당 감소, topdown dst.Compare(src) 숏컷 제거, format_int 10진수 경로에서 strconv.ParseInt 호출 생략
- Go 1.26.3 → 1.26.4 업데이트, 웹사이트 및 노드 의존성 일괄 갱신
v1.19.6은 cert-manager-edit ClusterRole에서 발견된 HIGH 등급 RBAC 권한 상승 취약점(사용자가 ACME Challenge/Order를 직접 생성해 Issuer solver 셀렉터를 우회할 수 있던 문제)을 수정하는 보안 패치이며, CVE 3건을 해결하는 Go 툴체인 업데이트도 포함합니다. 이번 RBAC 수정에는 문서화된 주요 권한 변경이 포함되어 있습니다.
securityACME Challenge/Order 직접 생성을 통한 RBAC 권한 상승
v1.19.6에 적용됩니다. 기본 cert-manager-edit 애그리게이트 ClusterRole은 네임스페이스 사용자가 ACME Challenge와 Order 리소스를 직접 생성할 수 있게 해, Issuer solver 셀렉터를 우회할 수 있었습니다. 이번 패치로 challenges.acme.cert-manager.io의 create 권한과 orders.acme.cert-manager.io의 create/patch/update 권한이 해당 역할에서 제거되었습니다. HIGH 등급 취약점(GHSA-8rvj-mm4h-c258)이므로 v1.19.6으로 업그레이드하세요.
securityGo 툴체인 1.25.11로 업데이트, CVE 3건 해결
v1.19.6에서 무조건 적용됩니다. Go가 1.25.11로 업데이트되어 CVE-2026-27145, CVE-2026-42504, CVE-2026-42507을 해결합니다. 업그레이드 외에 별도 조치는 필요 없습니다.
breakingcert-manager-edit ClusterRole의 Challenge/Order 생성 권한 제거
Certificate → CertificateRequest → Order → Challenge 흐름을 벗어나 Challenge나 Order 리소스를 직접 생성하는 도구나 워크플로우가 있다면, 업그레이드 후 해당 권한을 잃게 되므로 별도로 권한을 부여해야 합니다.
주요 변경 (4)
- HIGH 등급 RBAC 취약점 수정(GHSA-8rvj-mm4h-c258): cert-manager-edit ClusterRole이 ACME Challenge/Order 직접 생성을 허용해 Issuer solver 셀렉터를 우회할 수 있었음
- 주요 변경(breaking): cert-manager-edit이 더 이상 challenges.acme.cert-manager.io의 create, orders.acme.cert-manager.io의 create/patch/update 권한을 부여하지 않음. Challenge/Order를 직접 생성하는 도구는 권한을 별도로 부여해야 함
- Go를 1.25.11로 업데이트해 CVE-2026-27145, CVE-2026-42504, CVE-2026-42507 해결
- 앞서 Go 1.25.10 업데이트와 기타 의존성 업데이트 다수 포함
v1.20.3은 cert-manager-edit ClusterRole의 HIGH 심각도 RBAC 과잉 권한(GHSA-8rvj-mm4h-c258)을 수정하고 Go를 v1.26.4로 올려 CVE 3건을 해결한 보안 릴리스입니다. 업그레이드 전에 Challenge·Order 리소스를 직접 생성하는 워크플로가 있는지 반드시 확인하세요.
securitycert-manager-edit ClusterRole RBAC 과잉 권한 (GHSA-8rvj-mm4h-c258)
GHSA-8rvj-mm4h-c258(HIGH): cert-manager-edit 집계 ClusterRole이 네임스페이스 사용자에게 Challenge·Order 리소스 직접 생성 권한을 부여해, Issuer 솔버 셀렉터를 우회할 수 있었습니다. v1.20.3에서 수정되었으므로, 클러스터에 신뢰하지 않는 네임스페이스 사용자가 있다면 즉시 업그레이드하세요.
securityGo v1.26.4 업데이트 (CVE 3건)
Go가 v1.26.4로 업데이트되어 CVE-2026-27145, CVE-2026-42504, CVE-2026-42507 세 건의 CVE가 수정됩니다. 별도 설정 변경 없이 cert-manager를 업그레이드하면 적용됩니다.
breakingBreaking: cert-manager-edit에서 Challenge·Order 직접 생성 권한 제거
cert-manager-edit ClusterRole에서 challenges.acme.cert-manager.io의 create 권한과 orders.acme.cert-manager.io의 create·patch·update 권한이 제거되었습니다. 정상 흐름(Certificate → CertificateRequest → Order → Challenge)을 거치지 않고 Challenge나 Order를 직접 생성하는 자동화 도구·CI 워크플로가 있다면, 업그레이드 전에 반드시 수정하세요.
주요 변경 (4)
- HIGH 심각도 RBAC 취약점 수정 (GHSA-8rvj-mm4h-c258): cert-manager-edit ClusterRole에서 Challenge·Order 직접 생성을 허용하는 권한을 제거해 Issuer 솔버 셀렉터 우회 경로를 차단했습니다.
- Breaking 변경: cert-manager-edit 집계 ClusterRole에서 challenges.acme.cert-manager.io의 create, orders.acme.cert-manager.io의 create·patch·update 권한이 삭제되었습니다.
- Go를 v1.26.4로 업데이트해 CVE-2026-27145, CVE-2026-42504, CVE-2026-42507을 수정했습니다.
- 버그 수정: Challenge 리소스에 포함되어 있던 issuer owner reference가 제거되어 Challenge 가비지 컬렉션이 정상 작동합니다.
v1.18.0은 OIDC 인증 우회와 preshared key 타이밍 취약점 두 가지 보안 버그를 수정합니다. MySQL 사용자는 스키마 마이그레이션으로 인해 업그레이드 전 유지보수 시간을 반드시 확보해야 합니다.
securityOIDC audience 우회 취약점 — 업그레이드 전 설정 확인 필수
authn.oidc.audience를 설정하지 않으면 JWT audience 검증이 무음으로 건너뛰어졌고, 신뢰된 issuer가 발급한 모든 토큰이 수락됐습니다. 업그레이드 후에는 issuer와 audience가 모두 없으면 서버가 기동하지 않습니다. 배포 설정에 authn.oidc.audience가 명시돼 있는지 미리 확인하세요.
securityPreshared key 타이밍 사이드채널 수정 — 키 교체 고려
기존 map lookup 기반 preshared key 검증은 응답 시간 차이로 유효한 키 바이트를 추측할 수 있었습니다. 이제 constant-time 비교로 수정됐습니다. 즉각적인 조치는 불필요하지만, 이 키가 신뢰할 수 없는 네트워크 경로에 오랫동안 노출됐다면 키를 교체하는 것이 좋습니다.
breakingMySQL 사용자: 서버 기동 시 auto-migration 실행 금지
마이그레이션 008은 tuple 및 changelog 테이블에 공유 락을 획득합니다. 데이터가 많은 프로덕션 환경에서는 Write 작업이 장시간 차단될 수 있습니다. collation_migrations.md 운영 가이드를 먼저 읽고, 유지보수 시간을 잡아 마이그레이션을 수동으로 실행하세요. auto-migration 옵션은 반드시 끄세요.
주요 변경 (4)
- MySQL 스키마 마이그레이션 008: 식별자 비교를 대소문자 구분(case-sensitive)으로 변경, tuple·changelog 테이블에 공유 락(shared lock) 획득
- Preshared key 인증에 constant-time 비교 도입 — 이전 map lookup 방식의 타이밍 사이드채널 차단
- OIDC 설정 검증 강화: authn.oidc.issuer 또는 authn.oidc.audience 누락 시 서버 기동 거부, 기존의 JWT audience 조용한 우회 방지
- MySQL 식별자 비교 동작이 Postgres·SQLite와 동일하게 대소문자 구분으로 통일
Falco 0.44.1은 BPF 반복자 제어 옵션을 추가하고 libs 버전 업을 통해 여러 BPF 관련 버그를 수정합니다. 커널 레벨 추적을 사용하는 배포 환경의 안정성에 중점을 둔 최소한의 릴리스입니다.
breakinglibs와 커널 드라이버를 함께 업데이트하세요
이번 릴리스에서 libs는 0.25.4로, 드라이버는 10.2.0+driver로 업그레이드됩니다. 커널 드라이버 버전을 Falco와 분리해서 관리한다면 같은 유지보수 기간에 둘 다 업데이트해야 합니다. 버전이 맞지 않으면 시스템 호출 캡처 실패나 무음 데이터 손실이 발생할 수 있습니다.
enhancementBPF 반복자로 인한 성능 또는 호환성 문제가 있으면 비활성화 옵션 활용
Falco 0.44.1에서 BPF 반복자를 비활성화하는 설정 옵션이 추가되었습니다. 커널의 BPF 반복자 구현이 불안정하거나 반복자 오버헤드로 인한 높은 CPU 사용량을 관찰하고 있다면 비활성화를 테스트해보세요. 업그레이드 후 Falco 로그와 메트릭을 확인하여 0.44.0에서 겪던 BPF 관련 불안정성이 해결되었는지 검증하세요.
주요 변경 (3)
- Falco 설정에서 BPF 반복자 비활성화 옵션 추가
- libs 0.25.4, 드라이버 10.2.0+driver로 업그레이드하여 BPF 반복자 버그 해결
- x86_64 및 aarch64 플랫폼에 대해 rpm, deb, tgz 형식으로 패키지 제공
OPA HTTP 핸들러와 암호화 내장 함수에 영향을 주는 Go stdlib 취약점 2건을 수정한 보안 패치입니다. v1.17.0 대비 코드 변경은 없습니다.
securityOPA 서버 또는 crypto 내장 함수 사용 시 즉시 v1.17.1로 업그레이드
Go stdlib 취약점 두 건(GO-2026-5039, GO-2026-5037)이 OPA의 HTTP 핸들러와 암호화 내장 함수에 직접 영향을 줍니다. OPA를 서버 모드로 운영하거나 Rego에서 crypto 관련 내장 함수를 사용 중이라면 v1.17.0 이하에서 노출된 상태입니다. v1.17.1은 코드 변경이 없으므로 설정이나 정책 수정 없이 바이너리만 교체하면 됩니다. OPA 바이너리를 직접 빌드하는 경우엔 Go 툴체인을 1.26.4로 직접 올려야 합니다.
주요 변경 (4)
- Go 런타임 1.26.3 → 1.26.4 업그레이드
- GO-2026-5039: HTTP 핸들러 관련 stdlib 취약점 수정
- GO-2026-5037: 암호화 내장 함수 관련 stdlib 취약점 수정
- v1.17.0 대비 기능 변경 없음 — 순수 보안 패치
v1.17.1은 이터레이터 캐시의 stale read 버그와 타입 이름에 '|' 문자가 포함될 때 continuation token이 깨지는 문제를 수정한 패치 릴리스입니다.
security캐시 stale read로 잘못된 권한 결정이 반환될 수 있었음 — 즉시 패치
이터레이터 캐시가 쓰기 시각을 기준으로 LastModified를 설정하고 있어, 캐시 항목이 유효 기간을 초과해 살아남아 오래된 데이터를 서빙할 수 있었습니다. 권한 시스템에서 만료된 'allow' 판정이 그대로 반환되는 건 실질적인 보안 위험입니다. 캐싱을 활성화해 운영 중이라면 v1.17.1로 즉시 업그레이드하세요.
breaking'|' 포함 타입 이름 사용 중이라면 페이지네이션 즉시 재검증
FGA 모델에서 '|' 문자가 들어간 타입 이름을 쓴다면, continuation token이 잘못 역직렬화되어 ListObjects 등 페이지네이션 API가 불완전하거나 잘못된 결과를 반환했을 수 있습니다. 오류 메시지 없이 조용히 깨지는 유형이라 놓치기 쉽습니다. v1.17.1로 업그레이드한 뒤 해당 타입 이름을 참조하는 페이지네이션 흐름을 반드시 재테스트하세요.
enhancementv2Check 폴백 제거 — 에러 처리 로직 사전 점검 필요
기존에는 스로틀링이나 유효성 검증 오류 발생 시 v2Check가 v1 동작으로 조용히 폴백해 실제 문제가 숨겨졌습니다. 이제 해당 오류가 직접 반환됩니다. 애플리케이션이 check 오류를 묵시적으로 삼키거나 폴백 동작을 가정하고 있다면, 이전에 보이지 않던 오류가 갑자기 노출될 수 있습니다. 프로덕션 배포 전 부하 상황에서 반드시 테스트하세요.
주요 변경 (5)
- 이터레이터 캐시 stale read 수정: LastModified 기준을 쿼리 시작 시각으로 고정해 캐시 항목이 의도보다 오래 살아남는 문제 해결
- 타입 이름에 '|' 포함 시 continuation token 역직렬화 실패 버그 수정 — 페이지네이션 결과가 조용히 깨지던 문제
- v2Check가 스로틀링·유효성 검증 오류 시 v1 동작으로 폴백하지 않도록 변경, 실행 시맨틱 강화
- Go 툴체인 1.26.4 및 grpc-health-probe v0.4.52로 업그레이드
- 캐싱 관련 공식 문서 현행화
Keycloak 26.6.3은 OIDC, SAML, LDAP, WebAuthn, 인가 서비스 전반에 걸쳐 16개의 CVE를 수정한 긴급 보안 패치입니다. 즉시 업그레이드해야 합니다.
security16개 CVE 포함 — 즉시 26.6.3으로 업그레이드
이번 릴리스에서 패치된 취약점 중 특히 위험한 항목은 다음과 같습니다. CVE-2026-9704(토큰 교환 시 subject_token 묵시적 제거를 통한 권한 상승), CVE-2026-4874(OIDC 토큰 엔드포인트 SSRF), CVE-2026-9802(서버 재시작 후 교체된 리프레시 토큰 재사용), CVE-2026-8830(WebAuthn 서버 측 검증 누락). 26.x 버전을 운영 중이라면 정기 유지보수 일정을 기다리지 말고 즉시 패치 창을 잡으세요. 업그레이드 전 마이그레이션 가이드를 반드시 확인해야 합니다.
security와일드카드 리다이렉트 URI 수정 후 클라이언트 설정 검토 필요
와일드카드 리다이렉트 URI 매칭 로직이 변경되었습니다. 호스트명 바로 뒤에 '*'를 붙인 패턴이 임의의 서브도메인이나 경로와 일치하지 않도록 강화되었습니다. 업그레이드 후 기존 클라이언트의 리다이렉트 URI가 정상 동작하는지 각 환경에서 반드시 확인하세요. 지나치게 넓게 설정된 와일드카드 패턴이 있다면 이번 기회에 정리하는 것을 권장합니다.
securityLDAP 페더레이션 및 토큰 교환 설정 점검
CVE-2026-9801은 LDAP 페더레이션에서 잘못된 형식의 PasswordPolicyControl을 통한 DoS 공격을 허용합니다. 외부 트래픽이 LDAP 기반 인증 흐름에 닿을 수 있는 구성이라면 우선순위를 높여 패치하세요. CVE-2026-9704는 토큰 교환 사용 시 subject_token 제거를 통한 권한 상승 문제로, 업그레이드 후 토큰 교환 정책 범위가 올바르게 설정되어 있는지 재확인해야 합니다.
주요 변경 (5)
- 16개 CVE 패치: 토큰 교환 권한 상승, OIDC 엔드포인트 SSRF, 검증되지 않은 JWT azp 클레임의 CORS 헤더 반영, WebAuthn 등록 우회 등
- 서버 재시작 시 startupTime 초기화 버그 수정 — revokeRefreshToken=true 설정에서 교체된 리프레시 토큰이 재사용되던 취약점(CVE-2026-9802) 해결
- 와일드카드 리다이렉트 URI 매칭이 호스트 경계를 강제 적용하도록 수정 — 기존에는 서브도메인·경로 우회 공격이 가능했음
- ROPC 그랜트 클라이언트 정책 우회 및 토큰 인트로스펙션의 notBefore 처리 오류 수정
- 시작 시 DB 인덱스 누락 여부 체크 추가, SQL Server 대소문자 구분 콜레이션 환경 업그레이드 실패 수정
v1.17.0은 캐시 키 생성 방식을 TLV 인코딩으로 교체해 해시 플러딩 공격을 차단하고, OpenTelemetry 트레이스 샘플러를 설정 가능하게 만들었습니다.
security해시 플러딩 방어를 위해 즉시 업그레이드
기존 문자열 연결 방식의 캐시 키는 해시 플러딩 공격과 키 충돌 위험에 노출되어 있었습니다. TLV 인코딩과 프로세스별 해시 시딩으로 두 문제를 모두 해결했으며, 설정 변경 없이 버전 업그레이드만으로 적용됩니다. 멀티테넌트 환경이나 외부에 노출된 OpenFGA를 운영 중이라면 이번 릴리스를 우선 적용하세요.
enhancementAPI 게이트웨이나 서비스 메시 뒤에서 운영한다면 parent-based 샘플링 설정 권장
기존에는 OpenFGA가 업스트림의 샘플링 결정을 따르지 못해 스택 전체에서 트레이스가 일관되지 않게 수집되는 문제가 있었습니다. `OPENFGA_TRACE_SAMPLER=parentbased_always_on` 또는 `parentbased_traceidratio`로 설정하면 호출 서비스의 샘플링 결정을 그대로 따릅니다. OpenFGA가 대형 트레이싱 시스템의 다운스트림에 위치한다면, 불필요한 트레이스 노이즈를 줄이고 기존 옵저버빌리티 전략과 일관성을 맞출 수 있습니다.
주요 변경 (5)
- 캐시 키 생성을 문자열 연결에서 TLV 바이너리 인코딩으로 전환해 충돌 위험 제거
- 프로세스별 해시 시딩 추가로 해시 플러딩 공격 방어
- `trace.sampler` / `OPENFGA_TRACE_SAMPLER` / `OTEL_TRACES_SAMPLER`로 트레이스 샘플러 설정 가능
- parent-based 변형 포함 모든 표준 OTel 샘플링 전략 지원
- 기본 샘플러는 `traceidratio`로 기존 동작 유지
Kubescape v4.0.9는 스캔 정확도 버그(부분 리소스 수집, 커버리지 리포팅, Prometheus 출력)를 고치고 스캔 리포트의 정보 노출을 보강하며, patch 명령의 기본 푸시 동작을 변경한 대규모 유지보수 릴리스입니다.
security시크릿 노출 관련 수정과 신규 익명화 플래그 점검
스캔 결과의 정보 노출을 막는 수정이 여러 건 포함됐습니다. removeContainersData에서 EnvFrom과 Env[].ValueFrom을 제거하고(커밋 acc3280, 0c68cca), /v1/results의 IDOR 취약점을 보강했으며(커밋 0fe6a0f), 리소스 이름·네임스페이스·라벨·어노테이션·컨테이너 메타데이터를 가리는 --hide 익명화 파이프라인이 새로 추가됐습니다. 스캔 리포트를 팀 밖으로 공유하거나 CI 아티팩트로 내보낸다면 --hide 플래그를 검토하고 컨테이너 환경변수 참조가 노출되지 않는지 확인하세요.
breakingpatch 명령의 기본 푸시 동작 제거
Kubescape의 fix 명령이 이제 기본적으로 패치된 이미지를 푸시하지 않습니다(커밋 b10cbb1). CI 파이프라인이 기존의 기본 푸시 동작에 의존하고 있었다면 --push 플래그를 명시적으로 추가해야 합니다. 그렇지 않으면 업그레이드 후 패치 파이프라인이 아무 경고 없이 이미지 푸시를 멈춥니다.
enhancement신규 커버리지 게이트와 diff 명령을 CI에 도입
CI 파이프라인에서 스캔 커버리지와 컨트롤 결과를 게이트할 수 있는 플래그가 추가됐습니다. --fail-coverage-below로 최소 커버리지 임계값을 지정할 수 있고(커밋 4ae7b87), 커버리지 누락 및 미평가 컨트롤도 명시적으로 리포트됩니다(커밋 5876d2b). 두 스캔 리포트를 비교하는 kubescape diff 명령도 새로 생겼습니다(커밋 00682ee). 이전에는 리소스 수집이 일부 실패해도 조용히 통과했던 CI 게이트에 --fail-coverage-below를 추가하고, kubescape diff로 스캔 간 보안 상태 변화를 추적하세요.
주요 변경 (6)
- GVR(리소스 타입) 일부 수집 실패를 조용히 무시하지 않고 표면화하며, ScanCoverage가 실패·미평가 컨트롤을 반영합니다
- CI 커버리지 게이트용 --fail-coverage-below 플래그와 리포트 비교용 kubescape diff 명령이 새로 추가됐습니다
- 리소스 이름, 네임스페이스, 라벨, 어노테이션, 컨테이너 메타데이터를 가리는 --hide 플래그와 익명화 파이프라인이 새로 생겼습니다
- fix 명령이 이제 이미지 푸시에 명시적 opt-in을 요구합니다 (이전에는 기본으로 푸시했습니다)
- Prometheus 출력 관련 수정 다수: 누락된 HELP/TYPE 헤더 추가, score/metrics 출력 writer 경로 수정, 중복 헤더 제거
- K8s 리소스 수집을 병렬화해 성능을 개선했고 TimedCache의 TOCTOU 레이스 컨디션을 고쳤습니다
0.9.51.0은 AWS AI/ML 관련 신규 리소스 추가, iam-access-key 스키마 breaking change, GCP 레이블 관리 대상 리소스 대폭 확대를 담은 기능 위주 릴리스입니다.
breaking업그레이드 전 iam-access-key 정책에서 json-diff 필터 제거 필수
`aws.iam-access-key` 리소스에서 `json-diff` 필터가 완전히 제거됐습니다. 이 필터를 쓰는 정책은 업그레이드 후 런타임 오류가 납니다. 업그레이드 전에 `iam-access-key` 관련 정책 파일을 검색해 `json-diff` 필터 사용 여부를 확인하고 제거하거나 대체 필터로 바꾸세요.
enhancementCross-account IAM 정책 검사에 org path 지원 활용
AWS cross-account 정책 평가에서 `aws:PrincipalOrgPaths`와 화이트리스트 계정을 지원하기 시작했습니다. 조직 경로 기반 principal 체크를 위해 별도 우회 방법을 쓰고 있었다면, 이 기능으로 정책을 단순화할 수 있습니다. cross-account 거버넌스 정책을 운영 중이라면 검토해 보세요.
enhancementGCP 레이블 컴플라이언스 정책을 새로 지원하는 리소스 타입으로 확장
이번 릴리스에서 GCP 레이블 관리 대상 리소스가 대폭 늘었습니다. Cloud Run 서비스/잡, Pub/Sub 토픽/구독, Redis, Secrets Manager 시크릿, 스냅샷, DNS 관리 영역, 인터커넥트, 로드밸런서 주소 및 포워딩 룰, Cloud Functions 등 약 15개 리소스 타입에 `set-labels`와 `mark-for-op` 액션이 추가됐습니다. GCP 레이블 컴플라이언스 정책을 운영 중이라면 지금까지 커버하지 못했던 리소스를 정책에 추가하세요.
주요 변경 (5)
- Breaking change: `aws.iam-access-key`에서 `json-diff` 필터 제거 — 사용 중인 정책은 업그레이드 시 오류 발생
- 신규 AWS 리소스: `bedrock-foundation-model`, `bedrock-guardrail`, `devops-agent-space` 추가; Bedrock 추론 프로파일에 `metrics` 필터 추가
- AWS EKS에 `addon` 및 `metrics`(컨테이너 인사이트) 필터 추가; RDS에 `recommendations` 필터 추가; `rds-param-group`, `rds-cluster-param-group` 모두 `unused` 필터 추가
- EC2와 Lambda에 `iam-role`, `iam-role-tag-mirror` 필터 추가 — 기존 리소스/역할 속성 불일치 버그 수정
- GCP에서 Firestore, NCC spoke, Redis 클러스터, Vertex AI Model Garden 등 신규 리소스 추가; ~15개 리소스 타입에 레이블 액션 일괄 추가
v1.14.7은 azure_imds 노드 어테스터의 인증서 검증 결함을 수정합니다. 공격자가 임의 Azure VM으로 위장해 노드 어테스테이션을 통과할 수 있었던 취약점으로, Azure IMDS를 사용 중이면 즉시 업그레이드해야 합니다.
securityazure_imds 노드 어테스터 사용 중이면 즉시 업그레이드
azure_imds 노드 어테스터에서 PKCS7 인증서 검증 로직에 결함이 있었습니다. 인증서 백의 첫 번째 인증서를 Azure 루트에 anchoring하면서도, 실제 서명 검증은 SignerInfo에서 별도로 가져온 서명자 인증서로 수행했습니다. 공격자가 정상적인 Azure 인증서를 인증서 백에 넣고 별개의 인증서로 서명된 문서를 함께 제출하면, 임의 VM으로 위장한 노드 어테스테이션이 통과될 수 있었습니다. Azure IMDS 노드 어테스터를 쓰고 있다면 즉시 업그레이드해야 합니다.
enhancement의존성 패키지 일괄 업데이트 포함
golang.org/x/net, golang.org/x/crypto, go-jose/v4, Go 툴체인(1.26.3)이 모두 업데이트됩니다. SPIRE 자체를 업그레이드하면 함께 적용되므로 별도 조치는 필요 없습니다.
주요 변경 (4)
- azure_imds 서버 노드 어테스터의 PKCS7 인증서 검증 결함 수정 — 서명 검증과 체인 검증이 분리되어 노드 위장 가능했던 문제
- Go 툴체인 1.26.3으로 업데이트
- golang.org/x/net v0.55.0, golang.org/x/crypto v0.52.0으로 업그레이드
- go-jose/v4 v4.1.4로 업데이트
OPA v1.17.0은 부정 처리의 의미론적 버그를 수정하고 결정 로그 레이블 보고를 개선합니다. 대부분 향상 사항이지만 하나의 의존성 제거는 특정 환경에서 수동 GOMAXPROCS 구성이 필요할 수 있습니다.
breakingautomaxprocs 및 x/net 의존성 제거됨; 필요시 GOMAXPROCS 수동 구성
OPA v1.17.0은 automaxprocs와 x/net 의존성을 제거하여 런타임 크기를 줄이고 이 라이브러리를 관리하는 애플리케이션과의 충돌을 제거합니다. automaxprocs 동작(CPU 자동 감지 및 GOMAXPROCS 튜닝)을 명시적으로 의존하지 않으면 조치가 필요 없습니다. 그 동작에 의존한다면 환경이나 배포에서 GOMAXPROCS를 수동으로 구성해야 할 수 있습니다. 대부분의 사용자는 영향을 받지 않습니다.
enhancement복합식 부정 의미론 수정을 위해 future.keywords.not 임포트하기
OPA v1.17.0은 복합식 부정(`not f(g(input.x))`)에서 중간값이 정의되지 않으면 규칙이 조용히 실패하던 오래된 버그를 고칩니다. `future.keywords.not` 임포트를 추가하면 정의되지 않은 중간값이 더 이상 규칙 실패를 일으키지 않고 부정이 올바르게 성공합니다. 입력이나 함수 결과가 정의되지 않을 수 있는 복잡한 식의 부정에 의존하는 정책이 있다면 `future.keywords.not`을 임포트하세요. 정책 평가 동작이 바뀌지만 올바른 방향입니다.
enhancement결정 로그 파싱을 새로운 rule_labels 배열 형식에 맞게 업데이트하기
결정 로그에 새로운 최상위 `rule_labels` 배열이 추가되어 성공적으로 평가된 모든 규칙의 레이블을 하나의 항목에 모읍니다(규칙 > 문서 > 패키지 > 서브패키지 순서로 우선순위 결정). 이전에는 레이블을 기여한 각 범위마다 로그 항목이 하나씩 있었습니다. 결정 로그를 규칙 레이블로 파싱하거나 쿼리한다면 개별 범위 레벨 항목 대신 `rule_labels`를 통합된 레이블 맵의 배열로 읽도록 로그 파싱 로직을 업데이트하세요. 이 변경으로 레이블 집계가 단순해지며 런타임과 Go SDK에서 기본으로 처리됩니다.
주요 변경 (5)
- 정의되지 않은 중간값을 포함한 복합식 부정 시 직관적이지 않은 실패를 수정하는 `future.keywords.not` 임포트 추가.
- 결정 로그에 성공적으로 평가된 모든 규칙의 통합된 레이블을 담은 `rule_labels` 배열 추가.
- 번들 매니페스트 및 IR 계획 JSON 스키마가 검증과 도구 통합을 위해 공개됨.
- 런타임 크기 감소를 위해 automaxprocs와 x/net 의존성 제거.
- `json.verify_schema` 및 `json.match_schema` 내장 함수에서 패턴 검증 활성화.
Falco 0.44.0은 오래 전부터 deprecated된 gRPC 출력, gVisor 엔진, 레거시 BPF 프로브를 최종 제거합니다. 이 중 하나라도 사용 중인 배포 환경은 업그레이드 전 마이그레이션이 필수입니다.
securityfalco-webui 로컬 전용으로 제한 — 외부 접근 도구 확인 필요
falco-webui Docker 서비스가 이제 로컬호스트 접근만 허용하도록 변경됩니다. 네트워크를 통해 webui에 접근하는 대시보드나 도구가 있다면 업그레이드 후 동작이 달라집니다. 보안 측면에서는 바람직한 변경이지만, 외부에서 webui를 호출하는 자동화 스크립트나 모니터링 도구가 있는지 미리 확인하세요.
breaking세 가지 기능 제거 — 업그레이드 전 설정 점검 필수
이번 릴리스에서 gRPC 출력/서버, gVisor 엔진, 레거시 BPF 프로브가 한꺼번에 제거됩니다. gRPC 기반 출력을 쓰고 있다면 HTTP JSON 출력이나 사이드카 방식으로 전환한 뒤 업그레이드해야 합니다. gVisor를 쓰는 팀은 지원되는 엔진으로 바꿔야 하고, 레거시 BPF를 쓰는 팀은 modern eBPF 프로브로 이동해야 합니다. 0.44.0을 프로덕션에 적용하기 전에 현재 falco.yaml과 배포 구성을 반드시 점검하세요.
enhancement룰 문법 확장 — 커스텀 룰 파일 유효성 사전 확인 권장
룰 엔진에 oneof/allof/anyof 문자열 비교 수식자가 추가됐고, 리스트 트랜스포머 예외도 지원됩니다. 커스텀 룰을 관리하는 팀이라면 기존에 중복 조건으로 우회했던 부분을 이 기능으로 간소화할 수 있습니다. 또한 이번 버전부터 룰 파일에 알 수 없는 키가 있으면 오류가 발생합니다. 기존 룰 파일에 오타나 비표준 필드가 있다면 업그레이드 전에 미리 검증해두세요.
주요 변경 (7)
- gRPC 출력/서버 제거 — 업그레이드 전 출력 방식 마이그레이션 필요
- gVisor 엔진 제거 — 해당 엔진 사용 중이면 지원 엔진으로 전환 필요
- 레거시 BPF 프로브 제거 — modern eBPF 프로브로 전환 필요
- 룰 엔진에 oneof/allof/anyof 문자열 비교 수식자 추가
- 룰 파일 내 unknown key 검증 — 비표준 필드가 있으면 오류 발생
- falco-webui Docker 서비스가 로컬호스트 전용으로 제한
- 캡처 파일에 capture_events, capture_filesize 종료 조건 추가
v1.16.0은 키 로테이션 후 OIDC 토큰 거부 버그를 수정하고, 실험적 weighted_graph_check의 두 가지 정합성 버그를 패치하며, Go 표준 라이브러리 취약점 대응을 위해 툴체인을 업데이트했습니다.
securityOIDC 인증 사용 중이거나 Go stdlib CVE 영향권이라면 즉시 업그레이드
두 가지 보안 사항이 있습니다. 첫째, 발급자 키를 로테이션한 후 유효한 토큰이 401로 거부되는 현상이 있었다면 JWKS 갱신 버그가 원인입니다. 이번 패치로 미등록 kid 수신 시 JWKS를 즉시 갱신합니다. 둘째, Go 1.24.3이 패치하는 표준 라이브러리 취약점의 영향을 Go 릴리스 노트에서 직접 확인하고, v1.16.0으로 빠르게 업그레이드하세요.
breakingweighted_graph_check 사용 중이라면 업그레이드 후 결과 검증 필수
이전 버전의 weighted_graph_check는 캐시 키 충돌과 고루틴 취소 시 false 결과 캐싱으로 인해 실제로는 허용되어야 할 요청을 거부할 수 있었습니다. 실험적 기능이지만 실제 트래픽에 적용 중이라면, 업그레이드 후 알려진 권한 시나리오로 결과를 검증해 이전 오동작의 영향을 확인하세요.
enhancementPingTimeout 설정으로 데이터스토어 연결 문제를 빠르게 감지
새로 추가된 PingTimeout과 PingRetryMaxElapsedTime으로 시작 시 및 헬스체크 중 데이터스토어 연결 대기 시간을 명시적으로 제어할 수 있습니다. SLO에 맞게 타이트하게 설정해두면, 데이터스토어가 저하된 상태에서 서버가 그냥 올라오는 상황을 예방할 수 있습니다.
주요 변경 (5)
- OIDC 인증: 미등록 kid 감지 시 JWKS 자동 갱신(분당 1회 제한)으로 키 로테이션 후 토큰 거부 문제 해결
- Go 툴체인을 1.24.3으로 업데이트하여 표준 라이브러리 보안 취약점 대응
- 실험적 weighted_graph_check의 union 해석 시 캐시 키 충돌 버그 수정
- union 단락(short-circuit) 또는 재귀 해석으로 취소된 고루틴이 false 결과를 캐싱하던 버그 수정
- 데이터스토어 ping 타임아웃 설정 추가: PingTimeout, PingRetryMaxElapsedTime
SPIRE v1.15.0은 HashiCorp Vault 키 관리자 플러그인, rootless Podman 지원, PROXY 프로토콜 속도 제한을 추가하고 sigstore 증명을 정식 기능으로 승격했습니다. CLI JSON 출력 변경 사항은 업그레이드 전 반드시 확인해야 합니다.
breaking업그레이드 전 CLI JSON 파싱 코드 전수 점검
CLI가 JSON 출력 시 객체를 슬라이스로 감싸던 방식이 제거됐습니다. spire-server 또는 spire-agent CLI의 JSON 출력을 파싱하는 스크립트, 파이프라인, 자동화 도구는 배열 대신 단일 객체를 받게 되어 동작이 깨질 겁니다. 프로덕션 배포 전에 비운영 환경에서 반드시 검증하세요.
breaking'bootstrapped' 레이블 변경으로 메트릭 쿼리 점검 필요
메트릭 레이블 오타('bootstraped' → 'bootstrapped')가 수정됐습니다. 기존 레이블명을 참조하는 Prometheus 쿼리, Grafana 대시보드, 알림 규칙이 있다면 업그레이드 후 조용히 매칭이 끊깁니다. v1.15.0 배포 전에 관련 항목을 모두 찾아 수정하세요.
enhancementVault 운영 중이라면 Vault Key Manager 플러그인으로 통합 검토
조직에서 HashiCorp Vault를 이미 운영 중이라면, 별도의 AWS KMS나 Azure Key Vault 없이 키 저장소를 Vault로 통합할 수 있습니다. 온프레미스나 멀티클라우드 환경에서 특히 유용합니다. 다만 기존 키는 자동으로 마이그레이션되지 않으니 키 이관 계획을 별도로 수립한 뒤 전환하세요.
enhancementsigstore 증명 프로덕션 적용 시점 도래
k8s 및 docker 어테스터의 sigstore 기반 증명이 정식 기능으로 승격됐습니다. 실험적 플래그 때문에 도입을 미뤄왔다면 이번 릴리스가 적기입니다. 스테이징 환경에서 셀렉터 동작을 먼저 검증한 뒤 프로덕션에 적용하세요.
주요 변경 (6)
- HashiCorp Vault Key Manager 플러그인 추가 — AWS KMS, Azure Key Vault 외 새로운 키 저장 옵션 확보
- CLI JSON 출력 호환성 변경: 객체가 더 이상 슬라이스로 감싸지지 않아 기존 파싱 도구가 깨질 수 있음
- k8s 및 docker 어테스터의 sigstore 지원이 실험적 단계를 벗어나 정식 기능으로 승격
- Docker 워크로드 어테스터가 rootless Podman을 지원 — 비루트 컨테이너 런타임 환경 커버리지 확대
- GCP IIT 노드 어테스터가 서비스 계정 이메일 조회 시 더 이상 'use_instance_metadata: true' 불필요
- 메트릭 레이블 오타 수정: 'bootstraped' → 'bootstrapped' — 대시보드 및 알림 규칙 업데이트 필요
Keycloak 26.6.2는 세션 고정 공격, XSS, 접근 제어 우회, 리다이렉트 URI 검증 우회, 암호화 취약점 등 16개 CVE를 수정한 보안 집중 패치입니다. 즉시 업그레이드해야 합니다.
security즉시 업그레이드 — 계정 탈취 및 개인정보 노출 CVE 다수 포함
이번 릴리스는 표준 OIDC 플로우와 관리 API에 직접 영향을 주는 취약점들을 수정합니다. 세션 고정으로 인한 계정 탈취(CVE-2026-7507), 리다이렉트 URI 우회(CVE-2026-7504), 위조된 클라이언트 데이터를 통한 토큰 노출(CVE-2026-7571), 계정 리소스 조회를 통한 개인정보 열거(CVE-2026-37981) 등이 포함됩니다. 이론적 위협이 아니라 실제 운영 환경에서 악용 가능한 수준입니다. 변경 관리 프로세스가 있더라도 긴급 패치로 처리해야 합니다.
securityFreeMarker RCE 취약점 — 업그레이드 전 커스텀 로그인 테마 점검 필수
#47915 이슈로 추적된 취약점은 FreeMarker 템플릿에서 임의의 Java 객체를 인스턴스화하고 OS 명령을 실행할 수 있는 문제였습니다. 사용자 입력이 FTL 파일에 반영되는 커스텀 로그인 테마를 운영 중이라면 지금 바로 감사하세요. 수정 후에는 FTL 내 JS 블록에 새로운 이스케이프 처리가 적용되므로, 특히 frontchannel-logout.ftl을 포함한 커스텀 테마가 업그레이드 후에도 정상 동작하는지 반드시 테스트해야 합니다.
securityWebAuthn AAGUID 정책 우회 — 기존 등록 자격증명 재검토 필요
CVE-2026-6856으로 인해 WebAuthn 등록 시 Packed Self-Attestation을 통해 AAGUID 허용 목록 정책을 우회할 수 있었습니다. 규제 환경에서 특정 FIDO2 보안 키만 허용하도록 AAGUID 제한을 설정한 경우, 정책에 위반되는 자격증명이 이미 등록되어 있을 가능성이 있습니다. 업그레이드 후 최근 등록된 WebAuthn 자격증명을 검토하고, 하드웨어 증명이 컴플라이언스 요구사항이라면 재등록을 요구하는 방안을 검토하세요.
주요 변경 (5)
- 계정 탈취로 이어지는 OIDC 세션 고정(CVE-2026-7507), 리다이렉트 URI 우회(CVE-2026-7504), 액세스 토큰 노출(CVE-2026-7571), 조직 템플릿 Stored XSS(CVE-2026-37980) 등 16개 CVE 패치
- Packed Self-Attestation을 통한 WebAuthn AAGUID 정책 우회 수정 — 이전까지는 하드웨어 인증기 정책 집행이 불완전했음
- OIDC 인트로스펙션 엔드포인트에 audience 제한 적용 — 경량 액세스 토큰의 클레임 누출 차단
- FreeMarker 템플릿에서 Java 객체 인스턴스화 및 OS 명령 실행 가능했던 RCE급 취약점 수정
- 26.7 스키마 변경 시에도 JDBC_PING이 깨지지 않도록 개선하여 롤링 업그레이드 안정성 향상
Kyverno v1.18.1은 v1.18.0에서 발생한 generate 정책 및 mutate-existing 정책의 회귀 버그 두 건을 수정한 패치 릴리스입니다.
breaking클러스터 범위 리소스 generate 정책 사용 중이라면 즉시 업그레이드 필요
v1.18.0에서 ClusterRole, Namespace, CRD 등 클러스터 범위 리소스를 대상으로 한 GeneratingPolicy가 조용히 동작하지 않았습니다. v1.18.1로 업그레이드한 뒤, v1.18.0 운영 기간 동안 생성되었어야 할 리소스가 실제로 존재하는지 확인하고, 누락된 리소스는 수동 생성이나 정책 재트리거로 보정하세요.
breakingv1.18.0에서 mutate-existing 정책이 잘못 적용되었을 가능성 있음
UpdateRequest에 AdmissionRequest 컨텍스트가 전달되지 않아, 요청 정보(사용자 정보, object, oldObject)를 조건이나 패치에 활용하는 규칙이 의도와 다르게 동작했습니다. v1.18.1로 업그레이드한 후 v1.18.0 운영 중 변경된 리소스 상태를 감사하고, 영향받은 리소스를 올바른 상태로 되돌렸는지 검증하세요.
enhancementgenerate 또는 mutate-existing 정책 사용자라면 v1.18.0은 건너뛰세요
두 수정 모두 main 브랜치에서 체리픽된 것으로, 해당 기능을 쓴다면 v1.18.0은 사실상 결함 버전입니다. v1.17.x에서 업그레이드를 검토 중이라면 v1.18.0 대신 v1.18.1부터 테스트를 시작하세요.
주요 변경 (3)
- GeneratingPolicy에서 클러스터 범위 리소스 생성이 동작하지 않던 버그 수정
- mutate-existing 정책의 UpdateRequest에 AdmissionRequest가 전달되지 않던 버그 수정
- 신규 기능 및 API 변경 없음 — 버그 수정만 포함
v7.0.0은 Windows 위임 경로 매칭 보안 취약점(GHSA-qp9x-wp8f-qgjj)을 수정하고, ngclient의 Updater() 생성자 시그니처를 변경한 메이저 릴리스입니다.
securityWindows 환경이라면 즉시 v7.0.0으로 업그레이드하세요
GHSA-qp9x-wp8f-qgjj는 Windows에서 위임 경로 매칭이 의도와 다르게 동작해, 신뢰해서는 안 될 타겟이 검증을 통과할 수 있는 취약점입니다. Windows 클라이언트가 하나라도 있다면 즉시 패치해야 합니다. Linux/macOS는 직접적인 영향은 없지만, 어차피 업그레이드 필요성은 동일합니다.
breakingUpdater() 호출 코드 전수 점검 필요
'bootstrap'이 선택적 인자에서 명시적 키워드 인자로 바뀌었습니다. 기존에 bootstrap을 생략하고 Updater()를 호출하던 코드는 즉시 TypeError가 발생합니다. 코드베이스 전체에서 Updater() 호출 부분을 찾아 bootstrap=None을 추가하는 것으로 간단히 해결됩니다. 호출 지점마다 한 줄 수정이지만, 빠뜨리면 런타임 오류로 직결됩니다.
enhancementsecuresystemslib.hash 의존성 제거 예고에 미리 대비하세요
이번 릴리스는 securesystemslib.hash 제거의 시작점입니다. 커스텀 TUF 확장이나 내부 코드에서 securesystemslib.hash를 직접 import하거나 사용하고 있다면, 차기 릴리스에서 완전히 제거되기 전에 마이그레이션 계획을 세워두는 것이 좋습니다.
주요 변경 (5)
- Windows에서 위임 경로 매칭이 잘못 동작하던 보안 취약점(GHSA-qp9x-wp8f-qgjj) 수정
- Updater() 생성자에서 'bootstrap'이 이제 명시적 키워드 인자로 필수화됨
- 기존 동작을 유지하려면 bootstrap=None을 명시적으로 전달해야 함
- 향후 securesystemslib.hash 의존성 제거를 위한 사전 준비 작업 포함
- 문서 오류 다수 수정
Kubescape v4.0.8은 VAP(Validating Admission Policy) 관련 버그 여러 건을 수정하고, deploy-library 명령에 --timeout 플래그를 추가한 패치 릴리스입니다.
breakingVAP 레이블 셀렉터 파싱 버그 — 기존 정책 재검증 필요
기존 코드는 레이블 셀렉터를 '='로 단순 분리했고, DoubleEquals(==) 셀렉터도 잘못 허용했습니다. 복잡한 레이블 셀렉터를 사용하는 VAP 정책을 Kubescape로 생성한 적이 있다면, v4.0.8로 업그레이드 후 반드시 재생성하고 재검증하세요. 이전에 생성된 출력물이 올바르다고 가정하면 안 됩니다.
enhancement느린 클러스터에서는 --timeout 플래그로 배포 시간 조정
deploy-library 명령의 새 --timeout 플래그로 VAP 라이브러리 배포 대기 시간을 직접 지정할 수 있습니다. API 서버 응답이 느린 클러스터나 CI 파이프라인처럼 시간 제한이 엄격한 환경에서는 기본값에 의존하지 말고 명시적으로 설정하세요. 파이프라인에 적용하기 전에 스테이징에서 적정값을 먼저 확인하세요.
enhancement클라우드 API 연동 환경에서는 업그레이드 후 스캔 결과 전송 확인
클라우드 API 초기화 시 커넥터 URL이 설정 객체에 반영되지 않던 버그가 수정됐습니다. Kubescape의 클라우드 연동을 사용하는데 스캔 결과 전송이 불안정했다면, 업그레이드 후 스캔을 한 번 실행해 결과가 백엔드에 정상 도달하는지 확인하세요.
주요 변경 (5)
- VAP deploy-library 명령에 배포 타임아웃 제어용 --timeout 플래그 추가
- 레이블 셀렉터 파싱을 문자열 단순 분리 방식에서 쿠버네티스 공식 레이블 파서로 교체 — 복잡한 셀렉터의 오작동 방지
- K8s 이름 및 네임스페이스 검증에 DNS 레이블 검증 헬퍼 적용
- writeOutput에서 부모 디렉토리 자동 생성 처리 — 파일 쓰기 실패 문제 수정
- 정상 종료 시 불필요한 인터럽트 시그널 로그 메시지 제거
Kubescape v4.0.7은 입력 검증 강화, HTTP 핸들러 동시성 안전성 개선, ControlInput CRD 추가, 사이드카 없는 서비스 디스커버리 등 버그 수정과 사용성 개선에 집중한 릴리스입니다.
breaking임계값 플래그 조기 검증 — CI 파이프라인 확인 필수
severity-threshold, compliance-threshold, fail-threshold 플래그가 이제 스캔 시작 전에 검증됩니다. 잘못된 값을 전달하는 스크립트나 CI 잡은 스캔을 완료하지 못하고 즉시 오류와 함께 종료됩니다. 업그레이드 전에 스캔 호출 명령어를 검토해 모든 임계값 플래그에 유효한 값이 지정되어 있는지 확인하세요.
enhancement서비스 디스커버리용 사이드카 제거 가능
서비스 디스커버리가 쿠버네티스 API를 직접 호출하도록 바뀌었습니다. 기존에 Kubescape 서비스 디스커버리를 위해 사이드카를 운영하고 있었다면, 업그레이드 전에 배포 구성을 점검하고 불필요한 사이드카를 제거하세요. 중복 사이드카가 남아 있으면 예상치 못한 동작이 발생할 수 있습니다.
enhancementControlInput CRD로 클러스터 내 스캔 정책 중앙화
새 ControlInput CRD를 사용하면 외부 파일 없이 클러스터 안에서 직접 컨트롤 입력을 관리할 수 있습니다. 라이브 클러스터 스캔에서만 활성화되므로 파일 기반 스캔 워크플로에는 영향이 없습니다. 업그레이드 후 CRD를 적용해 스캔 정책을 클러스터 내에서 통합 관리하는 것을 권장합니다.
주요 변경 (5)
- 새로운 ControlInput CRD로 클러스터 내 컨트롤 설정 가능 — 라이브 클러스터 스캔 전용, 파일 기반 스캔에는 비활성화
- 서비스 디스커버리가 사이드카 없이 쿠버네티스 API에서 직접 서비스 정보를 가져오도록 변경
- HTTP 핸들러의 TLS 키를 환경 변수로 설정 가능하며, TLS 설정이 불완전하면 즉시 오류 반환
- severity/compliance/fail 임계값 플래그가 스캔 실행 전에 조기 검증됨 — 모든 관련 서브커맨드 적용
- YAML 파싱 방식을 바이트 분할에서 라인 스캐너로 교체, 버퍼 한도 상향, 파싱 오류가 무시되지 않고 노출됨
v1.15.1은 Check 데드락, 세마포어 누수, 실험적 가중치 그래프 캐시 충돌 등 운영 안정성에 직결되는 버그를 수정한 패치 릴리스입니다.
security`weighted_graph_check` 캐시 충돌은 권한 오판을 유발할 수 있음
실험적 `weighted_graph_check` 기능을 사용 중이라면, 캐시 키 충돌로 인해 직접 타입·와일드카드·TTU 경로·인터섹션이 포함된 유니온 관계에서 잘못된 Check 결과가 반환될 수 있습니다. 권한 오판은 보안 문제로 직결됩니다. 즉시 업그레이드하고, 당장 업그레이드가 불가능하다면 실험적 기능 플래그를 비활성화하세요.
breaking데드락·세마포어 누수 버그로 즉시 업그레이드 필요
두 가지 버그 모두 운영 환경을 조용히 망가뜨릴 수 있습니다. Check 데드락은 오류 발생 시 메시지 스트림이 닫히지 않아 요청 처리가 점점 고갈되고, bounded tuple reader의 세마포어 누수는 타임아웃이 잦은 환경에서 리소스 고갈로 이어집니다. 설정 변경 없이 업그레이드만으로 해결됩니다. Check 응답 지연이나 컨텍스트 취소 후 리소스 압박을 겪었다면 이 버그들이 원인일 가능성이 높습니다.
enhancementListObjects 오류 전파 수정 — 쿼리 결과 재검증 권장
단락(short-circuit) 처리 시 무시돼야 할 오류가 ListObjects 응답에 잘못 노출되는 버그가 수정됐습니다. 의도치 않은 ListObjects 오류를 경험했다면 이번 수정이 원인을 해결합니다. 업그레이드 후 테스트 스위트에서 ListObjects 동작을 한 번 재확인해 두는 게 좋습니다.
주요 변경 (5)
- 커맨드 오류 처리 중 발생 가능한 패닉 수정
- 오류 시 메시지 스트림이 무기한 열린 채로 유지되는 Check 데드락 수정
- 컨텍스트 취소 시 bounded tuple reader의 세마포어 토큰 누수 수정
- 실험적 `weighted_graph_check`에서 유니온 다중 분기에 대한 캐시 키 충돌 수정
- ListObjects에서 경로 단락(short-circuit) 시 오류가 잘못 전파되는 버그 수정
in-toto v3.1.0은 sslib 해시 함수를 내재화하고 ruff로 코드 스타일을 전환했습니다. 유지보수 중심 릴리스지만 sslib 의존성 변경은 실무 환경에 영향을 줄 수 있습니다.
breakingsslib를 별도로 사용 중이라면 지금 마이그레이션 계획을 세우세요
in-toto가 sslib의 해시 함수를 직접 내재화한 이유는 sslib가 지원 중단 수순을 밟고 있기 때문입니다. 프로젝트 의존성 트리에서 sslib를 직접 또는 간접적으로 끌어오는 경로가 있다면 지금 확인하고 대체 방안을 마련해야 합니다. in-toto 업그레이드만으로 sslib 문제가 해결된다고 보면 안 됩니다.
enhancement`in-toto-run` 반환 코드 전달 동작 변경 — CI 파이프라인을 점검하세요
기존에는 `in-toto-run`이 래핑된 명령의 종료 코드를 무시해서 CI에서 실패가 묻히는 경우가 있었습니다. 이제 종료 코드가 정상적으로 전달되므로, `in-toto-run` 이후 종료 코드를 검사하는 스크립트나 CI 스텝이 있다면 동작이 바뀌었는지 반드시 확인하세요. 이전에는 통과하던 단계가 실패로 잡힐 수 있습니다.
enhancement기여자·패키저라면 개발 환경을 ruff로 맞추세요
코드베이스 전체가 ruff 기준으로 정리됐습니다. fork를 유지하거나 PR을 올릴 계획이라면 기존 flake8/pylint 설정이 불필요한 충돌을 만들 수 있으니, 로컬 개발 환경을 ruff로 전환한 뒤 작업하는 게 좋습니다.
주요 변경 (5)
- sslib 해시 함수를 in-toto 내부로 이식 — sslib 지원 중단에 따른 외부 의존성 제거
- 코드 스타일 도구를 ruff로 전환, 전체 코드베이스에 적용
- Debian 패키지 의존성 및 빌드 규칙 최신화
- CLI: `in-toto-run`이 래핑된 명령의 반환 코드를 이제 그대로 전달
- 파이프라인 및 내용 관련 문서 업데이트
v4.0.6은 스캔 결과의 정확성을 크게 개선한 릴리스로, 네임스페이스 필터 오류, OPA 평가 실패 시 묵시적 누락, CVE 예외 처리 대소문자 구분 버그 등 결과에 직접 영향을 주는 문제들을 수정했습니다.
securityCVE 예외 목록의 대소문자 일관성 점검 필요
이전 버전에서는 이미지 스캔 CVE 예외 매칭이 대소문자를 구분했기 때문에, 소문자로 등록된 'ghsa-xxxx' 예외는 적용되지 않았습니다. 업그레이드 후 예외 목록의 CVE/GHSA ID 표기를 검토하고, 실제로 예외 처리되고 있는 항목을 다시 확인하세요.
securityHTTP 핸들러 로그에서 요청 바디 기록 제거 — 기존 로그 검토 권고
이전까지 Kubescape의 HTTP 핸들러가 스캔 요청 전체 바디를 로그에 기록했는데, 여기에 리소스 매니페스트나 민감한 설정 데이터가 포함될 수 있었습니다. 이번 릴리스에서 해당 로깅이 제거됐습니다. 기존에 수집된 로그에 매니페스트 내용이 포함되어 있을 수 있으므로, 로그 보존 정책을 검토하고 필요시 데이터를 폐기하세요.
breaking업그레이드 후 스캔 결과 변화 예상 — 기존의 거짓 통과가 실패로 전환됨
두 가지 버그로 인해 리소스가 스캔 결과에서 조용히 사라지고 있었습니다. OPA 평가 오류가 무시되던 문제와 GVR 수집 부분 실패가 억제되던 문제가 모두 수정됐습니다. 기존 컴플라이언스 점수가 비정상적으로 깔끔했다면, 업그레이드 후 새로 나타나는 실패 항목은 회귀가 아니라 원래부터 존재했던 문제입니다. 결과 기준선을 재정립해야 할 수 있습니다.
주요 변경 (5)
- OPA 규칙 평가 실패 시 리소스가 조용히 누락되던 문제 수정 — 이제 오류가 명시적으로 표시됨
- --include-namespaces 사용 시 클러스터 스코프 리소스 결과가 필터링에서 제외되던 버그 수정
- CVE 예외 매칭이 대소문자 구분 없이 처리되도록 개선 (소문자 CVE ID 예외 누락 방지)
- kubescape scan에서 Helm 값 오버라이드 전달 가능, Kustomize 디렉터리 내 Helm 렌더링 지원 추가
- 원시 스캔 요청 바디 로깅 제거 및 동시 요청 시 예외 파일 경합 조건 수정
v1.16.0은 URI 빌트인 함수 추가, Data API 메타데이터 지원, OTLP 메트릭 내보내기와 함께, v1.15.x에서 발생한 로그 유실 버그를 수정한 릴리스입니다.
securityunits.parse_bytes 지수 상한 적용 — 타임아웃 우회 차단
units.parse_bytes에 비정상적으로 큰 지수 값을 넣으면 평가 타임아웃을 유발해 정책 집행을 우회할 수 있었습니다. v1.16.0에서 지수 크기에 상한을 두어 수정됐습니다. 사용자 입력이 units.parse_bytes로 전달되는 정책이 있다면 이번 수정이 직접 해당됩니다. 신뢰할 수 없는 소스에서 바이트 문자열을 파싱하는 정책을 우선 검토하세요.
breakingv1.15.x 사용 중이라면 즉시 업그레이드 — 로그가 소리 없이 사라집니다
v1.15.x의 BufferedLogger 버그로 인해 첫 번째 flush 이후 번들 다운로드 로그, print() 출력, 플러그인 로그가 전부 유실됩니다. 옵저버빌리티 스택에서 조용히 데이터가 손실되는 상황입니다. v1.15.x를 프로덕션에서 운영 중이라면 즉시 v1.16.0으로 업그레이드하고, 그 기간 동안의 로그 파이프라인에 공백이 없는지 확인하세요.
enhancementuri.parse / uri.is_valid로 기존 정규식 기반 URL 검증 로직 교체하세요
지금까지 많은 OPA 정책이 URL 파싱이나 검증에 정규식이나 문자열 조작을 써왔는데, 유지보수가 어렵고 엣지 케이스에 취약합니다. uri.parse는 RFC 3986 기반의 구조화된 컴포넌트(scheme, host, path, query 등)를 반환하고, uri.is_valid는 간결한 boolean 검사를 제공합니다. 리다이렉트 URI, 웹훅 URL, 혹은 URL을 포함하는 입력을 다루는 정책이 있다면 커스텀 파싱 로직을 이 빌트인으로 교체하는 게 낫습니다.
주요 변경 (5)
- RFC 3986 기반 URI 처리를 위한 uri.parse, uri.is_valid 빌트인 함수 신규 추가
- Data API에 요청/응답 메타데이터 지원 추가 — 커스텀 필드가 결정 로그의 Custom['request_metadata']에 기록됨
- Prometheus 메트릭을 OTLP로 내보내기 가능 — 옵저버빌리티 파이프라인 통합에 활용 가능
- v1.15.x에서 번들 다운로드, print() 호출, 플러그인 로그가 무음으로 유실되던 버그 수정
- units.parse_bytes의 지수 크기 상한 적용으로 타임아웃 우회 가능성 차단
Kyverno 1.18은 HTTP 컨텍스트 보안을 강화하고 이미지 검증 우회 버그를 수정했으며, CLI에서 더 많은 정책 유형을 테스트할 수 있게 됐습니다.
security업그레이드 전 HTTP 컨텍스트 정책 전수 검토 필수
HTTP 컨텍스트를 사용하는 정책은 이제 블록리스트 강제 적용을 받습니다. 기존에 정상 동작하던 외부 HTTP 호출이 업그레이드 후 차단될 수 있습니다. 1.18로 전환하기 전에 HTTP 컨텍스트 항목이 있는 정책을 모두 파악하고, 대상 URL이 기본 블록리스트에 포함되지 않는지 확인하세요. 필요하다면 FLAG_HTTP_BLOCKLIST 오버라이드를 설정해야 합니다. 스코프 토큰 인증 방식도 바뀌었으므로 폭넓은 토큰 권한에 의존하는 정책이 있다면 비프로덕션 클러스터에서 먼저 검증하세요.
security이미지 검증 우회 버그 패치 — 실제 적용 여부 재확인 권장
processResourceWithPatches가 패치 실패 시 nil을 반환해 이미지 검증을 조용히 건너뛰는 버그가 수정됐습니다. 이미지 검증 정책을 운영 중이었다면 그동안 실제로 적용되고 있었는지 확신하기 어렵습니다. 업그레이드 후 준수 여부 스캔을 다시 실행해 결과를 확인하세요. CVE-2026-32280(중간 인증서 제한)과 CVE-2026-32283(Go 툴체인 업그레이드)도 포함됐으니 보안 측면에서 빠른 업그레이드를 권장합니다.
enhancementsuccessEventActions로 이벤트 과부하 해소
정책 범위가 넓은 대규모 클러스터에서는 성공 이벤트가 etcd를 압박하고 이벤트 스트림을 쓸모없게 만들기 쉽습니다. 새 successEventActions 파라미터를 Kyverno ConfigMap에 추가하면 어떤 성공 이벤트를 방출할지 직접 제어할 수 있습니다. 기존 omitEvents 설정과 충돌하면 경고가 발생하니 병행 설정 시 주의하세요.
주요 변경 (5)
- HTTP 컨텍스트 호출에 블록리스트 강제 적용 및 스코프 토큰 인증 추가 — 외부 HTTP 호출을 사용하는 정책은 업그레이드 전 검토 필요
- imageRegistryCredentials가 네임스페이스 시크릿과 파드 수준 imagePullSecrets를 참조할 수 있어 멀티테넌트 이미지 검증 구성이 훨씬 유연해짐
- 패치 실패 시 nil을 반환해 이미지 검증을 조용히 우회하던 processResourceWithPatches 버그 수정
- successEventActions 파라미터로 성공 이벤트 방출을 세밀하게 제어 가능 — 이벤트 폭증으로 고생하는 대규모 클러스터에 유용
- kyverno apply·test CLI가 cleanup 정책, HTTP/Envoy authz 정책, mutateExisting을 지원해 CI 파이프라인에서 오프라인 테스트 가능
SPIRE v1.14.6은 EC2 인스턴스 사칭을 허용하는 aws_iid 결함과 조인 토큰 경쟁 조건, 두 가지 심각한 보안 취약점을 수정합니다.
securityaws_iid 어테스테이션 사용 중이라면 즉시 업그레이드
공격자가 EC2 인스턴스 하나만 제어해도 aws_iid 어테스테이션 과정에서 다른 모든 EC2 인스턴스의 신원을 위조할 수 있는 심각한 결함입니다. 위조된 신원은 SPIFFE ID 할당과 워크로드 인가 결정 전체에 영향을 줍니다. v1.14.6으로 즉시 업그레이드하고, 업그레이드 후 노드 어테스테이션 로그에서 실제 AWS 메타데이터와 불일치하는 비정상적인 등록 기록이 없는지 반드시 확인하세요.
security조인 토큰 이중 등록 가능 — 지금 패치하고 발급 정책 재검토
TOCTOU 결함으로 동일한 조인 토큰으로 두 에이전트가 동시에 어테스테이션을 완료할 수 있었습니다. 자동화 파이프라인이나 임시 환경에서 조인 토큰을 배포한다면, 토큰을 탈취한 공격자가 정상 에이전트와의 경쟁으로 등록을 먼저 완료할 위험이 있습니다. v1.14.6으로 업그레이드한 뒤, 토큰 유효 기간을 단축하거나 민감한 워크로드에는 x509pop 같은 대안적 어테스테이션 방식으로 전환하는 것을 검토하세요.
주요 변경 (4)
- aws_iid 어테스터 수정: PKCS7 서명은 내장 콘텐츠로 검증하면서, 실제 신원은 공격자가 조작 가능한 별도 필드에서 파싱하는 결함 제거
- 조인 토큰 TOCTOU 경쟁 조건 수정: tx.Delete()가 삭제된 행이 없어도 오류를 반환하지 않아 동일 토큰으로 동시 어테스테이션이 모두 성공하던 문제 해결
- 행 잠금 기반 읽기-수정-쓰기 트랜잭션으로 교체하여 정확히 하나의 행만 삭제됨을 보장
- 두 취약점 모두 Tianshuo Han이 제보
v1.13.6은 AWS IID 어테스터의 EC2 인스턴스 사칭 취약점과 조인 토큰의 경쟁 조건 버그를 수정한 보안 패치입니다. 즉시 업그레이드하세요.
securityAWS IID 어테스테이션 사용 중이라면 즉시 업그레이드
AWS IID 어테스터 취약점은 심각합니다. EC2 인스턴스 하나만 제어할 수 있으면 노드 어테스테이션 과정에서 환경 내 임의의 다른 EC2 인스턴스를 사칭할 수 있습니다. SVID 발급, RBAC, 워크로드 인증 등 모든 다운스트림 결정이 위조된 identity 기반으로 동작하게 됩니다. aws_iid 플러그인을 사용 중이라면 v1.13.6으로 즉시 패치하고, SPIRE 서버 로그에서 비정상적인 EC2 노드 어테스테이션 이벤트(특히 크로스 계정·크로스 리전 패턴)를 점검하세요.
security동시 에이전트 부트스트래핑 환경이라면 조인 토큰 즉시 교체
TOCTOU 버그로 인해 같은 조인 토큰을 동시에 사용한 두 에이전트가 모두 어테스테이션에 성공할 수 있었습니다. 1회용 토큰의 보안 보장이 깨진 셈입니다. 업그레이드 후, 동시 에이전트 부트스트래핑이 발생했을 가능성이 있는 시점에 사용된 조인 토큰은 모두 교체하세요. init 컨테이너나 CI 파이프라인처럼 병렬 실행이 가능한 자동화 환경에서 조인 토큰을 사용하고 있다면, 해당 구간에서 경쟁 조건이 실제로 발생했는지 감사 로그를 확인하세요.
주요 변경 (3)
- AWS IID 어테스터 취약점 수정: PKCS7 서명은 내장 콘텐츠로 검증하면서 실제 identity document는 공격자가 제어 가능한 별도 필드에서 파싱 — EC2 인스턴스 사칭 가능
- 조인 토큰 TOCTOU 경쟁 조건 수정: 동일 토큰으로 동시 어테스테이션 요청이 모두 성공하는 문제를 행 잠금 기반 read-modify-write 트랜잭션으로 해결
- 두 취약점 모두 Tianshuo Han이 제보했으며, 이번 릴리스에는 기능 변경 없이 보안 수정만 포함
v1.15.0은 복잡한 인가 모델의 지연 시간을 줄이는 엣지 프루닝, 실험적 가중 그래프 체커의 캐시 버그 수정, Go 1.26.2 업그레이드를 통한 표준 라이브러리 보안 패치를 담고 있습니다.
securityGo 표준 라이브러리 취약점 패치를 위해 즉시 업데이트
이번 릴리스는 Go 1.26.2를 탑재했으며, Go 표준 라이브러리의 보안 취약점이 수정됐습니다. 컨테이너로 운영 중이라면 새 이미지를 즉시 교체하고, 소스 빌드 환경이라면 툴체인 버전을 맞추세요. 표준 라이브러리 취약점은 TLS, HTTP 파싱, 암호화 경로에 영향을 줄 수 있어 OpenFGA가 직접 의존하는 영역입니다.
enhancement복잡한 모델 환경에서 list objects 성능 재측정 권장
엣지 프루닝은 불필요한 그래프 탐색을 제거합니다. 관계 그래프가 깊거나 넓은 인가 모델을 운영 중이라면 ListObjects 호출의 p99 지연 시간이 줄어들 겁니다. 설정 변경 없이 얻는 성능 개선이니 기존 부하 테스트를 v1.15.0 기준으로 다시 돌려보세요.
enhancementweighted_graph_check 사용 중이라면 캐시 동작 재검토 필요
실험적 기능인 weighted_graph_check가 콜드 스타트나 캐시 컨트롤러 비활성 시 캐시를 조용히 건너뛰고 있었습니다. 파드 초기화 직후 지연 시간이 튀는 현상의 원인이었을 수 있습니다. 수정 후에는 문서 명세대로 제로 무효화 시간일 때 캐시를 사용하므로, 이 기능을 쓰고 있다면 이전에 측정한 동작과 달라질 수 있어 재테스트가 필요합니다.
주요 변경 (3)
- list objects 파이프라인에 엣지 프루닝 도입 — 복잡한 인가 모델에서 측정 가능한 지연 시간 감소
- 캐시 컨트롤러가 제로 무효화 시간을 반환할 때(콜드 스타트 또는 비활성 상태) weighted_graph_check 캐시가 잘못 우회되던 버그 수정
- Go 표준 라이브러리 취약점 대응을 위해 Go 툴체인을 1.26.2로 업그레이드
v1.16.4는 15개 이상의 CVE를 수정한 보안 집중 패치 릴리스로, 네임스페이스 정책에서 HTTP 기본 비활성화 등 동작 변경도 포함됩니다.
security즉시 업그레이드 — 공급망 구성 요소 포함 15개 이상 CVE 패치
sigstore/rekor, go-tuf, docker/cli, Go 표준 라이브러리, Kyverno 자체 코드에 걸쳐 CVE가 수정됐습니다. 이미지 서명 워크플로를 운영 중이라면 rekor와 go-tuf 업데이트가 직접 영향을 줍니다. 다음 정기 유지보수 창에서 업그레이드를 진행하세요. 다음 메이저 사이클까지 미루지 마십시오.
breaking네임스페이스 정책에서 HTTP 기본 비활성화 (CVE-2026-4789) — 업그레이드 전 반드시 검증
평문 HTTP로 외부 데이터를 가져오는 네임스페이스 정책은 이번 업그레이드 후 조용히 동작을 멈춥니다. URL 컨텍스트 소스나 외부 데이터 fetch를 사용하는 ClusterPolicy 또는 Policy 리소스가 있다면, 업그레이드 전에 HTTP(비HTTPS) 엔드포인트 사용 여부를 점검해야 합니다. 해당 엔드포인트를 HTTPS로 전환하거나 HTTPS를 지원하는 데이터 소스로 먼저 마이그레이션하세요.
breaking네임스페이스 정책의 ConfigMap 접근 제한 — RBAC 검토 필요
네임스페이스 정책의 ConfigMap 접근 범위가 축소됐습니다. 정책이 컨텍스트나 설정을 위해 다른 네임스페이스의 ConfigMap을 읽고 있다면, 업그레이드 후 해당 읽기 작업이 실패합니다. 정책 정의에서 크로스 네임스페이스 ConfigMap 참조를 찾아 정책 로직을 수정하거나 접근 권한을 조정한 뒤 배포하세요.
주요 변경 (5)
- CVE-2026-4789: 네임스페이스 정책에서 HTTP 기본 비활성화 — 단순 의존성 업데이트가 아닌 동작 변경
- 네임스페이스 정책의 ConfigMap 접근 범위 제한으로 정책 컨트롤러 침해 시 피해 범위 축소
- 정책 평가 시 요청 인가에 스코프 토큰 사용으로 전환
- forEach 뮤테이션 패닉 수정 — 특정 mutate 규칙 구성에서 엔진이 크래시되던 버그 해결
- docker/cli, sigstore/rekor, go-tuf/v2, Go 표준 라이브러리 등 의존성 CVE 다수 해결
v1.17.2는 다수의 CVE 패치와 함께 MutatingPolicy/ValidatingPolicy, 웹훅 재조정 루프, 네임스페이스 정책 처리 버그를 집중 수정한 보안 중심 패치 릴리스입니다.
security즉시 업그레이드 필요 — 6개 이상의 CVE 수정
의존성 라이브러리, Go 표준 라이브러리, 그리고 CVE-2026-4789까지 최소 6개의 CVE가 패치되었습니다. 특히 CVE-2026-4789는 네임스페이스 정책에서 HTTP를 기본 비활성화하는 동작 변경을 수반합니다. HTTP 기반 외부 데이터 소스나 컨텍스트를 사용하는 네임스페이스 정책이 있다면, 업그레이드 전에 해당 설정을 점검하세요. 별도 오류 없이 동작이 중단될 수 있습니다. 스테이징 환경에서 정책 동작을 먼저 검증한 뒤 프로덕션에 적용하는 것을 권장합니다.
breaking네임스페이스 정책 동작 변경 — HTTP 비활성화 및 ConfigMap 접근 제한
네임스페이스 정책에 두 가지 보안 강화가 적용됩니다. HTTP가 기본 비활성화되고, ConfigMap 접근 범위도 축소됩니다. HTTP 엔드포인트에서 컨텍스트를 가져오거나 타 네임스페이스의 ConfigMap을 읽는 정책은 업그레이드 후 오류가 발생하거나 조용히 실패할 수 있습니다. 프로덕션 배포 전에 반드시 네임스페이스 정책 전체를 대상으로 드라이런 또는 감사 스캔을 먼저 실행하세요.
enhancement웹훅 재조정 루프 수정 — 대규모 클러스터의 컨트롤러 부하 감소
웹훅 규칙의 순서가 일관되지 않아 반복적인 재조정 루프가 발생하고, API 서버 부하 증가와 컨트롤러 로그 폭증으로 이어지는 문제가 수정됐습니다. 웹훅 오브젝트 변경이 감사 로그에 끊임없이 찍히거나 kyverno-controller CPU가 비정상적으로 높았다면, 이번 릴리스로 해소될 겁니다. 업그레이드 후 별도 조치는 필요 없지만, 배포 후 컨트롤러 메트릭을 모니터링해 안정화 여부를 확인하세요.
주요 변경 (5)
- CVE-2026-24051, CVE-2026-15558, CVE-2026-1229, CVE-2026-33186, CVE-2026-34986, CVE-2026-4789 등 다수 CVE 패치 및 Go 표준 라이브러리 CVE 대응
- CVE-2026-4789 대응으로 네임스페이스 정책에서 HTTP 기본 비활성화 — 기존 설정에 영향 가능
- 네임스페이스 정책의 ConfigMap 접근 범위 제한 — 보안 강화 목적의 권한 축소
- 웹훅 및 웹훅 규칙의 순서 일관성 보장으로 무한 재조정 루프 버그 수정
- forEach 뮤테이션 엔진 패닉 방지, NamespacedGeneratingPolicy UPDATE 시 잘못된 lister 사용 수정, MutatingPolicy/ValidatingPolicy에 사용자 정보 처리 추가