RATATOSKRATATOSK
로그인

Kubescape

v4.0.21Security
2026년 11월 13일

ACTION 16CHECK 3OTHER 103

스캔, 수정, 정책, 보고 기능을 넓히고 정확성, 접근 제어, 의존성, 스캔 결과 처리를 보완한 유지 보수 릴리스입니다. 파일 처리와 분석을 안전하게 다듬었으며, 서비스 거부 위험을 줄이는 수정과 익명화 개선도 포함합니다.

조치 필요 (16)

  • securityHelm 템플릿 파일 읽기 제한 및 검증

    Helm 템플릿 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • securityKustomization 파일 읽기 제한 및 검증

    Kustomization 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • securityTerraform 파일 읽기 제한 및 검증

    Terraform 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • securitysetUseArtifactsFrom의 아티팩트 파일 읽기 제한

    setUseArtifactsFrom에서 아티팩트 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • securityLoadIgnoreFilePatterns의 무시 파일 읽기 제한

    LoadIgnoreFilePatterns에서 무시 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security복호화 과정의 보고서 파일 읽기 제한

    보고서 파일을 복호화할 때 파일 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • securityGetFileString의 매니페스트 파일 읽기 제한

    GetFileString에서 매니페스트 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security매니페스트 읽기 제한 및 일반 파일 검증

    applyFileChanges와 readManifest에서 매니페스트 읽기 범위를 제한하고 일반 파일이 아닌 입력을 거부하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security정책 파일 읽기 제한 및 검증

    정책 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security예외 파일 읽기 제한 및 검증

    예외 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • securityNewPathLocationResolver의 YAML 디코딩 범위 제한

    NewPathLocationResolver에서 YAML 매니페스트 디코딩 범위를 제한하고 일반 파일인지 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security테스트 케이스 파일 읽기 제한 및 검증

    테스트 케이스 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security워크로드 매니페스트 읽기 제한 및 검증

    워크로드 매니페스트를 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security사용자 정의 규칙 파일 읽기 제한 및 검증

    사용자 정의 규칙 파일을 읽을 때 읽기 범위를 제한하고 입력을 검증하도록 수정했습니다. CWE-400에 해당하는 서비스 거부 위험을 줄입니다.

  • security취약한 이미지 의존성과 Go toolchain 업데이트

    취약한 이미지 의존성과 Go toolchain을 업데이트했습니다.

  • breakingCluster 접두사 대체 동작 제거

    vapreconcile의 Cluster 접두사 대체 동작을 제거했습니다.

영향 확인 (3)

  • breaking역할 재작성 권한 부여의 바인딩 경로 조건

    역할 재작성 권한 부여를 처리할 때 적용됩니다.

    역할 재작성 권한 부여를 처리할 때 바인딩 경로가 필요하도록 조건을 변경했습니다.

  • breakingFleet 모의 실행 거부

    Fleet 모의 실행에 --dry-run을 사용하는 경우에 적용됩니다.

    Fleet 모의 실행을 거부하도록 변경했습니다. --dry-run을 사용하는 Fleet 모의 실행에 적용됩니다.

  • breaking원격 Git 저장소 기본 얕은 복제

    원격 Git 저장소를 사용하는 경우에 적용됩니다.

    원격 Git 저장소를 기본적으로 얕게 복제하도록 변경했습니다.

그 외 기록된 변경 103건 전체fixes 86 · additions 14 · value changes 2 · constraints 1

fixes (86)

  • * c6061d6611e3817dbb08a1d83152404f1a54f02a fix(anonymizer): anonymize RBAC relatedObjects to prevent ID leaks (#4793)
  • * d23ff8dd76a3a229b2a7c8477658972e135e4773 fix(anonymizer): hide RBAC binding subject and role references (#4841)
  • * 5ea0b36555d4c725600f4fe14333fdce335bc0f3 fix(anonymizer): hide and encrypt the exception audit (#4733)
  • * bf12f2a45605522ced0a37967649e86999b1a3a7 fix(anonymizer): hide skipped manifest paths (#4734)
  • * 32c20b8937cac618ee0c924bfa7ad7716c5e3e51 fix(anonymizer): keep each resource's identity through transactional anonymization (#4771)
  • * 4d2702270e1953a9edde3e807c16d76b424ed95a fix(anonymizer): preserve empty evidence path resource IDs (#4788)
  • * bad361c20e8b3537a02bedd2370585d8d13d2331 fix(cautils): fail the scan with the cause when the scanned Helm chart cannot be loaded (#4792)
  • * 7d38c3cf5915c5502112626b65bdeff34f9664de fix(cautils): keep large integers exact in the YAML 1.1 fallback (#4807)
  • * 7180566322ccbc0c41f0cc888d9037822310d758 fix(cautils): re-read an invalid file-scan manifest the way kubectl does (YAML 1.1) (#4758)
  • * cac8639d6a670ad8a52dc734bffec35494157a4b fix(cautils): stop scanning raw templates of Helm charts that fail to render (#4770)
  • * a0c17d217cf6c98b92d881c6993365f04e575e99 fix(cel): match "<resource>/*" admission rules against the object itself (#4830)
  • * af2b3ef3c2a27e36ef8c8590898756d512e0f869 fix(cel): skip a validation whose variable does not compile, like any other compile error (#4643)
  • * b21a7e59e822381c5f4797e61aaf1a14a38acb07 fix(cli): remove backticks that replace the value placeholder in flag help (#4631)
  • * 0bffab627656fce1c5891f17af5b455e9870c390 fix(cmd/patch): clarify digest-pinned image error and validate whitespace flags (#4852)
  • * 8e4a38b2661f14ec40669b7eb5f5ffba6969ebbe fix(config): bound file reads and reject non-regular inputs in scancontract and fleetconfig loaders (#4628) (#4630)
  • * 28551669c8ec1843a5f1339b00c0a5af92d83aae fix(core): bound manifest and controls input reads in scan validation and incremental cache (CWE-400) (#4827)
  • * 5a963bb5e51899542cd994b1a73a1c95c43ca5e0 fix(core): prevent nil pointer dereference in Diff, Download, Patch, and List (#4853)
  • * b0bde3f2fe00d813ead357e3e737754f94fbc684 fix(diff): accept a scan report that has no results (#4730)
  • * 4f2119a54e35caa13090a26240e9fc44793e374e fix(diff): preserve bare Windows drive output paths (#4787)
  • * 97661e72a42ba1fa200db3067951991d7c311cae fix(diff): preserve true base and head statuses for incomparable findings (#4867)
  • * b8b833a702bd12638bc3c175044ea2f0cf828e21 fix(diff): validate output flag and prevent silent fallback to stdout (#4781)
  • * 6156367e74b20910f38baddc8e6bf4f86d2dbdd5 fix(exceptions): match merged exception scopes like the processor does (#4728)
  • * 87b3655897b9187dd6dc7524b1ceefa3b46a6276 fix(exposure): don't report externalIPs on headless or ExternalName Services (#4633)
  • * c763655c84efe210b9e0f3268ac34edc11088fd7 fix(exposure): exclude redirect-only HTTP backends (#4677)
  • * db3ddfcb14662a20d361b57c6daf1a572b7d01d6 fix(exposure): guard nil index with undetermined exposure in ServiceExposure and safe receiver methods (#4780)
  • * efb8d208fa8538e3b2ef67dc566aa285a18a4522 fix(fix): accept 'yes' in Kustomize overwrite confirmation prompt (#4650) (#4651)
  • * f92debc0e98f05a227c556cffbc993275ab651ef fix(fix): load the --verify controls config before any write and print every verdict (#4791)
  • * 361cefdd3149c0786dce8d8f9cb3222347ed4897 fix(fix): validate empty and whitespace output flags (#4795) (#4796)
  • * d1560c4ee0de33bfe99206192d406a55f97a3d8c fix(fixhandler): guard autofix against stale manifests (#4625)
  • * 8c361655b8c489a3b204cb0eb4f2ce674afe9595 fix(fixhandler): normalize a padded base path before storing it (#4822)
  • * 2d4ed8f51cc441520f383f3c49a86bed385b503a fix(gitlab): type image-scan identifiers by their advisory, not always as CVE (#4843)
  • * 1292904dbcbdbe130c145928d5a351133027179c fix(helm): resolve chart dependencies against values before rendering (#4703)
  • * 7d7cf669f76220e06e6d0ea149c97da11dc224ee fix(httphandler): don't let an unparsable KS_ENABLE_HOST_SCANNER disable host sensor auto-detection (#4848)
  • * 14d01893bf5f36115018de34798f185aedcd5256 fix(image): validate output safety upfront before pulling or scanning images (#4706)
  • * 9a9e659c0d17439369f3d75308dbb2f2ff51cd30 fix(k8scveindex): bound local CVE feed file reads and reject non-regular files (CWE-400) (#4824)
  • * a558d4b56f11c5b356a456efa7756d980a132131 fix(kustomize): restrict scanned file loads to their root (#4804)
  • * 60706b4e3cc161301c3e1d449bcd290788b81bb9 fix(mapreconcile): never match an objectSelector on a CONNECT request (#4635)
  • * c802361455d19db6d339f93cb159cfcb7361faea fix(mapreconcile): skip resources the apiserver exempts from all policies (#4637)
  • * aaf3adb336213637ae6f648f8c9084874db6dc04 fix(mcpserver): anchor workspace reads to root (#4863)
  • * caaa43fb7eb276dfa9e4ad260d145623e805dd25 fix(mcpserver): confine report_path, base_path and diff reports to --workspace (#4826)
  • * 870c18de02893c2c4caf9e36834c0a0b6513fd85 fix(mcpserver): include Deployment revision exposure (#4763)
  • * 3752275ca5567bf2388f4874284c499ea61f5e45 fix(mcpserver): keep a JSON manifest JSON in apply_remediation (#4732)
  • * d385ab5017561813622f36cbc68884095661bc2a fix(mcpserver): keep envFrom ConfigMap exposure when an optional env ref may not resolve (#4660)
  • * 84ead130c9904a31e58fdcac7688a167114ca985 fix(mcpserver): match Services that select one StatefulSet Pod by its identity labels (#4662)
  • * 4e177f3ce160e9c8d2a00b0f574291f470fc5169 fix(mcpserver): reject a subresource passed inside resource (#4656)
  • * 88cd1c46025429d48d8a9d476c67cfd98b116cae fix(mcpserver): report finite bind and escalate grants in analyze_rbac_escalation_paths (#4718)
  • * 8525dc9168d673b1df3d580b33479bd661ba87f9 fix(networkpolicy): ignore fully excluded ipBlocks in ingress exposure (#4640)
  • * 57b8375d15ee5e79888671e37dba5e2969b42dd5 fix(networkpolicy): rate open-ended namespace selectors as any-namespace (#4829)
  • * 4accdec90688126fc3043b5ecedde42d258d04e9 fix(networkpolicy,exposure): read resources in ID order, not map order (#4658)
  • * 6aa6ad5a015493a4cc5a19c30c0114c47dbc4b9f fix(networkpolicy,vulnexposure): guard nil index with default-allow reachability and ingress exposure (#4663)
  • * 779c93b0a9d10eb0710596f6bf639883b6c9c584 fix(opa): restrict control Rego capabilities (#4803)
  • * f30072c676b13c0df4caf16898c2258a2b28d57b fix(opaprocessor): evaluate C-0302 against the whole cluster when streaming (#4812)
  • * 59583c3dd63e769051f6da50e4789885df7992a3 fix(opaprocessor): redact secrets in container args, probe headers and annotations (#4783)
  • * ee7cf887029d46ea9b35968ce54a9d3b9285d93d fix(opaprocessor): redact the related objects a rule attaches to its result (#4857)
  • * e9d55589825f4b254405e80ad51a7c705a9beff8 fix(opaprocessor): skip a control whose rule errors instead of failing the whole scan (#4832)
  • * 5d72ece23bfec1a49246020efe0856ee1234be81 fix(patch): use secure temporary file for intermediate scan report (#4645) (#4647)
  • * a46f7f08971730f151f61ec8ffb2684cb7451ccf fix(policy): propagate policy test output errors (#4646)
  • * cc03e4df247250e5b0d2717a0f86858fd872462c fix(predict): enforce Cobra argument bounds on kubescape predict root command (#4667)
  • * a61fd7b2403c943b4b75e9b3995cae9155085ece fix(printer): don't label file scans with the ambient kube context (#4821)
  • * 9a1e4cadeba544cbfc55324ce20d6e6347940e2d fix(printer): include exception audit and namespace summaries in YAML output (#4719)
  • * 8ab01ea5eb2d90595f95e3a5e21e0bdfffedce48 fix(printer): return an error when CSV or JSON has no posture report (#4862)
  • * a29f14d7e005e506f42da0d23fc8d2249a2dfc25 fix(printer): show redacted instead of the scan's XXXXXX placeholder in evidence (#4670)
  • * 9655e1cc369bcb133356cfd48fe3c927eea4a98b fix(prometheus): emit one resource series per RBAC subject in cluster scans (#4721)
  • fix(prometheus): label resource metrics with their source file so copies stay distinct (#4678)
  • fix(rbacgraph): model bind combined with an update of an existing binding (#4716)
  • fix(reportcrypto): restore typed resource envelopes in DecryptReport (#4810)
  • fix(resultshandling): guard against nil dereference in score, result, and output writers (#4858)
  • fix(rules): count a create through resourceNames [""] in two RBAC rules (#4831)
  • fix(rules): don't count a create narrowed by resourceNames as a create (#4762)
  • fix(rules): match RBAC subjects that carry neither namespace nor apiGroup (#4800)
  • fix(rules): match create and patch on a common resourceName and across roles (#4806)
  • fix(rules): report get on pods/exec in weak-namespace-pod-rce-v1 (#4638)
  • fix(rules): scope impersonation grants made through RoleBindings (#4675)
  • fix(rules): treat list and watch on secrets as reading them (#4666)
  • fix(sarif): give each image run its own category when there are several (#4723)
  • fix(scan): check selector-resolved image paths alongside literal paths (#4743)
  • fix(scan): prevent nil pointer panic on --dry-run
  • fix(scan): prevent scan output from overwriting input manifests, baselines, and configuration files (#4606)
  • fix(scan): reject image-only SBOM formats upfront on posture scans (#4856)
  • fix(scan): retain literal manifest paths and reattach ScanImageContext docstring (#4736)
  • fix(scan): stop a passing --dry-run from writing and gating an empty report (#4234)
  • fix(vap): validate output flag and prevent silent fallback to stdout (#4664)
  • fix(vapreconcile): do not over-credit binding coverage for namespaced resources lacking metadata.namespace (#4642)
  • fix(vapreconcile): honor binding resource rules in coverage (#4724)
  • fix: collect ownerless pods with hash labels (#4752)
  • * ba790281450d5272e3196382e9328a1ab5bb188c fix(helmprovenance): resolve values paths in with blocks (#4582)

additions (14)

  • * 2b04fbf1534aed6032299413045ef3c94b0cb5ce feat(core): reuse released policy store across scans (#4805)
  • * c8ae6a9ce0be655aaef8cbb86c99cfe740b9d6af feat(fix): add --verify to check each fixed control with a rescan (#4765)
  • * 7abce96b62c907a00c7c1d20e365e0c48139a2b1 feat(fix): export remediation changes as a unified diff with --output patch (#4753)
  • * 599024ebad5b5d108adc92faf78ab0faeda64bab feat(kustomize): attribute each rendered resource to the file Kustomize read it from (#4797)
  • * 682fd3daed85f0486c72c86d3a2bb6388b880f0d feat(mcpserver): add verify_remediation tool for local IaC (#4707)
  • * 1d4f71bc3259e8109314b3dde1b86a810a0f5549 feat(policy): select the cases policy test runs with --run (#4778)
  • * 3f3b7deea03b790d6d397468aef3d4e9158201a3 feat(policy): write policy test results as a JUnit XML report (#4814)
  • * 471cae950dbb139e8ac7166bd38481f1890bf493 feat(printer): mark delete and review paths that do not resolve as unresolved under -E (#4794)
  • * 803f6fa57c5a338cf2c4d747a61438e69bb979e6 feat(printer): print a kubectl command for each evidence path on clus… (#4754)
  • * 3421c7e30bb12bb0b4bf64b2cef0993956a4a1a5 feat(printer): show current values for delete paths in --show-evidence (#4623)
  • * 51cbf0eacd49d5fc6330395e28377dec93638eaf feat(watch): add a file watcher and a debounced, sequential scan scheduler (#4865)
  • * 96fc884296dd92844b7f8c50fab6c00649af5dfe feat(watch): compare local manifest scans by stable resource identity (#4709)
  • catalog ecosystem cluster-scoped kinds (#4726)
  • * fb757b93b4be68049ca1ced29d78e6fcad52056f feat(fleet): add json schema for the fleet report (#4624)

value changes (2)

  • fix(score): bump opa-utils to v0.0.318 to keep scoring past an unscorable framework (#4750)
  • perf(opaprocessor): early cleanup of raw resource payloads during streaming evaluation (#4665)

constraints (1)

  • * ffbbaa117c3263285f40c49438b896bec1ad1fd7 feat(scan): support user-authored ValidatingAdmissionPolicy YAML in --custom-rules (#4838)
Kubescape 스택에 추가

조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 보안 패치와 브레이킹 체인지 같은 것들입니다.

스택에 추가 →