Impact
Kubewarden is a policy engine for Kubernetes. Kubewarden cluster operators can grant permissions to users to deploy namespaced AdmissionPolicies and AdmissionPolicyGroups in their Namespaces. One of Kubewarden promises is that configured users can deploy namespaced policies in a safe manner, without privilege escalation.
An attacker with privileged "AdmissionPolicy" create permissions (which isn't the default) could make use of 3 deprecated host-callback APIs: kubernetes/ingresses, kubernetes/namespaces, kubernetes/services.
The attacker can craft a policy that exercises these deprecated API calls and would allow them read access to Ingresses, Namespaces, and Services resources respectively.
This attack is read-only, there is no write capability and no access to Secrets, ConfigMaps, or other resource types beyond these three. The attacker could read for example:
- Namespace names and labels.
- Services across all namespaces with ClusterIPs and ports to reveal cluster internal topology.
- Ingresses across all namespaces with hostnames and routing rules.
Patches
The vulnerable, already deprecated host-capabilities (kubernetes/ingresses, kubernetes/namespaces, kubernetes/services)
have been removed.
The removed calls were not being exercised by any Kubewarden SDK.
These host-callbacks had already been superseded for a long time by kubewarden/kubernetes/list_resources_by_namespace, kubewarden/kubernetes/list_resources, and kubewarden/kubernetes/get_resource. They provide similar capabilities while being more fine-grained, performant, and gated through our context-aware permissions feature. These current host-capabilities are part of the Kubernetes capabilities listed in our docs.
Workarounds
Kubewarden operators can update the policy-server image used by their PolicyServers to tag :v1.33.0.
Alternatively, Kubewarden operators can temporarily reduce the permissions of users to prevent them from creating or updating existing namespaced AdmissionPolicies or AdmissionPolicyGroups.
References
#1519
Impact
Kubewarden is a policy engine for Kubernetes. Kubewarden cluster operators can grant permissions to users to deploy namespaced AdmissionPolicies and AdmissionPolicyGroups in their Namespaces. One of Kubewarden promises is that configured users can deploy namespaced policies in a safe manner, without privilege escalation.
An attacker with privileged "AdmissionPolicy" create permissions (which isn't the default) could make use of 3 deprecated host-callback APIs:
kubernetes/ingresses,kubernetes/namespaces,kubernetes/services.The attacker can craft a policy that exercises these deprecated API calls and would allow them read access to Ingresses, Namespaces, and Services resources respectively.
This attack is read-only, there is no write capability and no access to Secrets, ConfigMaps, or other resource types beyond these three. The attacker could read for example:
Patches
The vulnerable, already deprecated host-capabilities (
kubernetes/ingresses,kubernetes/namespaces,kubernetes/services)have been removed.
The removed calls were not being exercised by any Kubewarden SDK.
These host-callbacks had already been superseded for a long time by
kubewarden/kubernetes/list_resources_by_namespace,kubewarden/kubernetes/list_resources, andkubewarden/kubernetes/get_resource. They provide similar capabilities while being more fine-grained, performant, and gated through our context-aware permissions feature. These current host-capabilities are part of the Kubernetes capabilities listed in our docs.Workarounds
Kubewarden operators can update the policy-server image used by their PolicyServers to tag
:v1.33.0.Alternatively, Kubewarden operators can temporarily reduce the permissions of users to prevent them from creating or updating existing namespaced AdmissionPolicies or AdmissionPolicyGroups.
References
#1519