Advisory · CVE-2026-124441
Kyverno generate rules can be tricked into writing policies into other namespaces
Kyverno before 1.19.2 contains an authorization bypass that lets namespaced tenants generate any resource kind in any namespace by templating a generate rule's kind and namespace with variables, causing the privileged background controller to write NetworkPolicies or RoleBindings into victim or kube-system namespaces, rated high at CVSS 8.8; fixed in 1.19.2.
- Vendor
- Kyverno
- Product
- Kyverno
- Identifier / CWE
- CVE-2026-124441
CWE-863 - Action timing
- Immediate
Explain it like I’m five
Kyverno can copy rules into namespaces automatically. A flaw lets a tenant write a rule that says copy this into any namespace, and the background worker, which has powerful permissions, obediently writes network rules and role bindings into other tenants' namespaces or the system's own namespace.
- 01Tenant authors a Policy
A namespaced tenant creates a Policy with a generate rule.
- 02Kind and namespace templated
The rule's target kind and namespace are filled in with variables.
- 03Trigger fires
A ConfigMap in the tenant's own namespace triggers the rule.
- 04Privileged write
The background controller writes the generated resource into the victim namespace.
- 05Isolation broken
NetworkPolicies or RoleBindings land in victim or kube-system namespaces.
What happened
Kyverno before 1.19.2 contains an authorization bypass vulnerability that allows namespaced tenants to generate any resource kind in any namespace by templating the generate rule’s kind and namespace with variables. Attackers can create a Policy and trigger a ConfigMap in their own namespace, causing the privileged background-controller to write NetworkPolicies or RoleBindings into victim or kube-system namespaces. The record rates it high at CVSS 8.8 under version 3.1, with network attack vector, low complexity, low privileges required, and no user interaction.
The write lands with the controller’s privileges, so a tenant can reshape network policy and access bindings outside their own namespace. The flaw is fixed in Kyverno 1.19.2.
What to do
- Inventory Kyverno deployments and record each version.
- Upgrade to Kyverno 1.19.2 or later.
- Audit generate rules for templated kind or namespace fields.
- Review NetworkPolicies and RoleBindings in kube-system and tenant namespaces for unexpected entries.
- Remove any generated resource that cannot be accounted for.
- Verify the deployed version after updating.
Management note
A policy engine that writes where a tenant points it is a namespace-escape bug with cluster-wide reach. Audit what was generated, not just what version is running.