{"id":"CVE-2026-122308","kind":"vulnerability","aliases":["CVE-2026-122308"],"related":[],"title":"Kyverno: label spoofing lets users clone Secrets from restricted namespaces","description":"Kyverno before 1.19.2 contains an authorization bypass vulnerability in the Generation Handler that allows users with create/update permissions to trigger synchronized generate policies by spoofing internal generate.kyverno.io labels. Attackers can label a ConfigMap as managed-by kyverno with crafted policy, rule, and trigger labels to clone sensitive Secrets from restricted namespaces into their own namespace.","summary":"Kyverno before 1.19.2 trusts internal generate.kyverno.io labels on ConfigMaps, so a user with create or update rights can forge them. The forged labels make a synchronized generate policy copy sensitive Secrets from restricted namespaces into the attacker's own namespace.","severity":"high","cvss":8.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["infrastructure","kubernetes","kyverno","multi-tenant-clusters"],"not_affected_if":["kyverno-1.19.2-or-later","no-synchronized-generate-policies"],"how_to_check":"- Check the installed Kyverno version, for example with `kubectl get deploy kyverno-admission-controller -n kyverno -o jsonpath='{.spec.template.spec.containers[0].image}'`\n- Confirm whether any generate policies use `synchronize: true` (`kubectl get clusterpolicy -o yaml`)\n- Review who holds create or update permission on ConfigMaps across namespaces","fix":"- Kyverno: move to `1.19.2` or later","status":"open","published_at":"2026-11-05T03:17:23+00:00","first_seen_at":"2026-11-05T03:31:41+00:00","triaged_at":"2026-11-05T03:33:16+00:00","updated_at":"2026-11-05T03:33:16+00:00","category":"infrastructure","confidence":0.7,"triage":{"at":"2026-11-05T03:33:16Z","model":"claude-haiku-5-5","output":{"fix":"- Kyverno: move to `1.19.2` or later","reach":"network","title":"Kyverno: label spoofing lets users clone Secrets from restricted namespaces","impact":"high","summary":"Kyverno before 1.19.2 trusts internal generate.kyverno.io labels on ConfigMaps, so a user with create or update rights can forge them. The forged labels make a synchronized generate policy copy sensitive Secrets from restricted namespaces into the attacker's own namespace.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["kubernetes","kyverno","multi-tenant-clusters"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Secrets from restricted namespaces are copied into an attacker's namespace","analyst_note":"Confirm affected version range and exact trigger conditions against the vendor advisory on github.com and the VulnCheck advisory.","how_to_check":"- Check the installed Kyverno version, for example with `kubectl get deploy kyverno-admission-controller -n kyverno -o jsonpath='{.spec.template.spec.containers[0].image}'`\n- Confirm whether any generate policies use `synchronize: true` (`kubectl get clusterpolicy -o yaml`)\n- Review who holds create or update permission on ConfigMaps across namespaces","plain_action":"","needs_analyst":true,"not_affected_if":["kyverno-1.19.2-or-later","no-synchronized-generate-policies"],"who_is_affected":"Clusters running Kyverno versions before 1.19.2 that use generate policies with synchronization. Exposure depends on users who can create or update ConfigMaps in their own namespace and on Secrets that exist in restricted namespaces. Clusters on 1.19.2 or later, or without Kyverno generate policies, are not affected by this description.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000775,"input_tokens":4307,"output_tokens":688,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-122308':13A,16A '-2026':12A,15A '1.19.2':26B,66C 'allow':77C 'attack':60B,92C 'author':69C 'bypass':70C 'clone':6A,110C 'cluster':23B 'configmap':32B,96C 'contain':67C 'copi':52B 'craft':103C 'creat':37B 'create/update':80C 'cve':11A,14A 'forg':42B,45B 'generat':50B,74C,85C 'generate.kyverno.io':29B,90C 'handler':75C 'infrastructur':17B 'intern':28B,89C 'kubernet':18B 'kyverno':1A,19B,24B,64C,101C 'label':2A,30B,46B,91C,94C,108C 'let':4A 'make':47B 'manag':99C 'managed-bi':98C 'multi':21B 'multi-tenant-clust':20B 'namespac':10A,57B,63B,115C,119C 'permiss':81C 'polici':51B,86C,104C 'restrict':9A,56B,114C 'right':40B 'rule':105C 'secret':7A,54B,112C 'sensit':53B,111C 'spoof':3A,88C 'synchron':49B,84C 'tenant':22B 'trigger':83C,107C 'trust':27B 'updat':39B 'user':5A,35B,78C 'vulner':71C","nicknames":[],"mitigations":[],"who_affected":"Clusters running Kyverno versions before 1.19.2 that use generate policies with synchronization. Exposure depends on users who can create or update ConfigMaps in their own namespace and on Secrets that exist in restricted namespaces. Clusters on 1.19.2 or later, or without Kyverno generate policies, are not affected by this description.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","infrastructure","kubernetes","kyverno","multitenantclusters"],"campaign_type":null,"first_public_at":"2026-10-21T15:44:00+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:H/SI:L/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-122308","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-122308","severity":null,"published_at":"2026-11-05T03:17:23+00:00","modified_at":"2026-11-05T03:17:23+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":72694,"url":"https://github.com/kyverno/kyverno/security/advisories/GHSA-hg5v-hwm3-956r","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-21T15:44:00+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":72695,"url":"https://www.vulncheck.com/advisories/kyverno-before-1.19.2-label-spoofing-via-generation-handler-processrequest","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"}