{"id":"CVE-2026-122302","kind":"vulnerability","aliases":["CVE-2026-122302"],"related":[],"title":"Kyverno: namespace admins can create cluster-wide resources beyond their permissions","description":"Kyverno before 1.19.2 contains a privilege escalation vulnerability that allows namespace admins to create resources beyond their RBAC because generate-rule admission checks verify the controller's permissions, not the author's. Attackers can create a namespaced Policy with generate rules targeting other namespaces or cluster-scoped kinds, making the background controller create or clone resources cluster-wide.","summary":"Kyverno before 1.19.2 lets a namespace admin create a namespaced Policy with generate rules that target other namespaces or cluster-scoped kinds. The background controller then creates or clones those resources cluster-wide, using its own permissions rather than the author's.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["infrastructure","kubernetes","kyverno","policy-as-code"],"not_affected_if":["kyverno-not-installed","no-generate-rules-in-use"],"how_to_check":"- Check the installed Kyverno version, for example with `kubectl get deployment -n kyverno kyverno-admission-controller -o jsonpath='{.spec.template.spec.containers[0].image}'`\n- List namespaced Policies that contain generate rules: `kubectl get policies -A -o yaml | grep -n generate`","fix":"- Kyverno: move to `1.19.2` or later (the sources state the fix is in versions before 1.19.2 being vulnerable)","status":"open","published_at":"2026-11-05T03:17:22+00:00","first_seen_at":"2026-11-05T03:31:40+00:00","triaged_at":"2026-11-05T03:33:07+00:00","updated_at":"2026-11-05T03:33:07+00:00","category":"infrastructure","confidence":0.7,"triage":{"at":"2026-11-05T03:33:07Z","model":"claude-haiku-5-5","output":{"fix":"- Kyverno: move to `1.19.2` or later (the sources state the fix is in versions before 1.19.2 being vulnerable)","reach":"network","title":"Kyverno: namespace admins can create cluster-wide resources beyond their permissions","impact":"high","summary":"Kyverno before 1.19.2 lets a namespace admin create a namespaced Policy with generate rules that target other namespaces or cluster-scoped kinds. The background controller then creates or clones those resources cluster-wide, using its own permissions rather than the author's.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["kubernetes","kyverno","policy-as-code"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"namespace admin creates cluster-wide resources with controller permissions","analyst_note":"Confirm the exact fixed version and the vendor advisory details at the GitHub advisory URL; sources only give 'before 1.19.2' and no product ranges.","how_to_check":"- Check the installed Kyverno version, for example with `kubectl get deployment -n kyverno kyverno-admission-controller -o jsonpath='{.spec.template.spec.containers[0].image}'`\n- List namespaced Policies that contain generate rules: `kubectl get policies -A -o yaml | grep -n generate`","plain_action":"","needs_analyst":true,"not_affected_if":["kyverno-not-installed","no-generate-rules-in-use"],"who_is_affected":"Clusters running Kyverno before 1.19.2 are exposed, since the background controller carries its own permissions when processing generate rules. Anyone who can create namespaced Policies in a namespace can reach cluster-wide resources through this path. Clusters without Kyverno, or where only trusted operators can write policies, have less exposure.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000766,"input_tokens":4296,"output_tokens":673,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-122302':15A,18A '-2026':14A,17A '1.19.2':28B,71C 'admin':3A,32B,80C 'admiss':91C 'allow':78C 'attack':102C 'author':68B,100C 'background':50B,121C 'beyond':10A,84C 'check':92C 'clone':55B,125C 'cluster':7A,46B,59B,116C,128C 'cluster-scop':45B,115C 'cluster-wid':6A,58B,127C 'code':25B 'contain':72C 'control':51B,95C,122C 'creat':5A,33B,53B,82C,104C,123C 'cve':13A,16A 'escal':75C 'generat':38B,89C,109C 'generate-rul':88C 'infrastructur':19B 'kind':48B,118C 'kubernet':20B 'kyverno':1A,21B,26B,69C 'let':29B 'make':119C 'namespac':2A,31B,35B,43B,79C,106C,113C 'permiss':12A,64B,97C 'polici':23B,36B,107C 'policy-as-cod':22B 'privileg':74C 'rather':65B 'rbac':86C 'resourc':9A,57B,83C,126C 'rule':39B,90C,110C 'scope':47B,117C 'target':41B,111C 'use':61B 'verifi':93C 'vulner':76C 'wide':8A,60B,129C","nicknames":[],"mitigations":[],"who_affected":"Clusters running Kyverno before 1.19.2 are exposed, since the background controller carries its own permissions when processing generate rules. Anyone who can create namespaced Policies in a namespace can reach cluster-wide resources through this path. Clusters without Kyverno, or where only trusted operators can write policies, have less exposure.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["critical","infrastructure","kubernetes","kyverno","policyascode"],"campaign_type":null,"first_public_at":"2026-10-21T15:40:27+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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-122302","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-122302","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:40+00:00","fetched_at":"2026-11-05T03:31:40+00:00","note":null}],"documents":[{"id":72681,"url":"https://github.com/kyverno/kyverno/security/advisories/GHSA-q62c-r9v2-cf64","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-21T15:40:27+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":72682,"url":"https://www.vulncheck.com/advisories/kyverno-before-1.19.2-privilege-escalation-via-generate-rule-permission-check","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"}