{"id":"CVE-2026-122304","kind":"vulnerability","aliases":["CVE-2026-122304"],"related":[],"title":"Kyverno: namespace admins can read other namespaces' Secrets via cleanup policies","description":"Kyverno from 1.17.0 before 1.19.2 contains an authorization bypass vulnerability that allows namespace admins to escape namespace confinement because the cleanup controller builds its context loader with a nil policy. Attackers can create a namespaced CleanupPolicy with apiCall or globalReference context entries to read cross-namespace Secrets and modify validatingwebhookconfigurations using the cleanup controller's ServiceAccount.","summary":"Kyverno versions 1.17.0 before 1.19.2 let a namespace admin escape namespace limits through a namespaced CleanupPolicy. The attacker can read Secrets in other namespaces and modify validatingwebhookconfigurations using the cleanup controller's ServiceAccount.","severity":"critical","cvss":9.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["infrastructure","kubernetes","kyverno"],"not_affected_if":["version-outside-range"],"how_to_check":"- Check the installed Kyverno version, for example with `kubectl get deployment -n kyverno kyverno-cleanup-controller -o jsonpath='{.spec.template.spec.containers[0].image}'` (the deployment name is unknown from the sources; confirm it in your cluster)\n- Confirm whether the version is between `1.17.0` and `1.19.2`, not including `1.19.2`","fix":"- Kyverno: move to `1.19.2` or later","status":"open","published_at":"2026-11-05T03:17:22+00:00","first_seen_at":"2026-11-05T03:31:41+00:00","triaged_at":"2026-11-05T03:33:02+00:00","updated_at":"2026-11-05T03:33:02+00:00","category":"infrastructure","confidence":0.7,"triage":{"at":"2026-11-05T03:33:02Z","model":"claude-haiku-5-5","output":{"fix":"- Kyverno: move to `1.19.2` or later","reach":"network","title":"Kyverno: namespace admins can read other namespaces' Secrets via cleanup policies","impact":"high","summary":"Kyverno versions 1.17.0 before 1.19.2 let a namespace admin escape namespace limits through a namespaced CleanupPolicy. The attacker can read Secrets in other namespaces and modify validatingwebhookconfigurations using the cleanup controller's ServiceAccount.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["kubernetes","kyverno"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Cross-namespace Secrets read and admission webhook configurations modified cluster-wide","analyst_note":"Confirm whether the cleanup controller is enabled by default and the exact fixed version from the vendor GitHub advisory linked in the sources.","how_to_check":"- Check the installed Kyverno version, for example with `kubectl get deployment -n kyverno kyverno-cleanup-controller -o jsonpath='{.spec.template.spec.containers[0].image}'` (the deployment name is unknown from the sources; confirm it in your cluster)\n- Confirm whether the version is between `1.17.0` and `1.19.2`, not including `1.19.2`","plain_action":"","needs_analyst":true,"not_affected_if":["version-outside-range"],"who_is_affected":"Clusters running Kyverno from 1.17.0 before 1.19.2 with the cleanup controller enabled are exposed. Namespace admins in those clusters can use the cleanup controller's ServiceAccount to reach across namespaces. Clusters on versions outside that range are not affected by this description.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000761,"input_tokens":4339,"output_tokens":655,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-122304':14A,17A '-2026':13A,16A '1.17.0':23B,56C '1.19.2':25B,58C 'admin':3A,29B,67C 'allow':65C 'apical':91C 'attack':38B,84C 'author':61C 'build':76C 'bypass':62C 'cleanup':10A,50B,74C,107C 'cleanuppolici':36B,89C 'confin':71C 'contain':59C 'context':78C,94C 'control':51B,75C,108C 'creat':86C 'cross':99C 'cross-namespac':98C 'cve':12A,15A 'entri':95C 'escap':30B,69C 'globalrefer':93C 'infrastructur':18B 'kubernet':19B 'kyverno':1A,20B,21B,54C 'let':26B 'limit':32B 'loader':79C 'modifi':46B,103C 'namespac':2A,7A,28B,31B,35B,44B,66C,70C,88C,100C 'nil':82C 'polici':11A,83C 'read':5A,40B,97C 'secret':8A,41B,101C 'serviceaccount':53B,110C 'use':48B,105C 'validatingwebhookconfigur':47B,104C 'version':22B 'via':9A 'vulner':63C","nicknames":[],"mitigations":[],"who_affected":"Clusters running Kyverno from 1.17.0 before 1.19.2 with the cleanup controller enabled are exposed. Namespace admins in those clusters can use the cleanup controller's ServiceAccount to reach across namespaces. Clusters on versions outside that range are not affected by this description.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["critical","infrastructure","kubernetes","kyverno"],"campaign_type":null,"first_public_at":"2026-10-21T15:41:20+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-122304","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-122304","severity":null,"published_at":"2026-11-05T03:17:22+00:00","modified_at":"2026-11-05T03:17:22+00:00","first_seen_at":"2026-11-05T03:31:41+00:00","fetched_at":"2026-11-05T03:31:41+00:00","note":null}],"documents":[{"id":72685,"url":"https://github.com/kyverno/kyverno/security/advisories/GHSA-p58h-r4j3-h5vx","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-21T15:41:20+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":72686,"url":"https://github.com/kyverno/kyverno/security/advisories/GHSA-rcxg-3f92-3mgr","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-21T15:56:02+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":72687,"url":"https://www.vulncheck.com/advisories/kyverno-1.17.0-before-1.19.2-privilege-escalation-via-cleanuppolicy-context-loader","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"exploit_sources":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}