CVE-2025-4563
Low · 2.7CVSS
2.7
EPSS
0.8%
Published
Jun 23, 2025
CISA due date
—
Cloudanix analysis
A flaw in the software that decides which containers can use special hardware resources lets a hacked server secretly create extra containers that grab resources it should not have access to.
- Exploitation
- Remote Authenticated
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- Other
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The NodeRestriction admission controller skips dynamic resource allocation claim status validation on pod creation (when the feature gate is enabled), permitting nodes to instantiate mirror pods that reference unauthorized claims.
Why it matters to the business
A compromised worker node can obtain unauthorized access to cluster resources, increasing the chance of lateral movement and privilege escalation inside container orchestration environments.
How an attack unfolds
An attacker first gains control of a Kubernetes node, then submits a pod creation request containing a dynamic resource claim; because validation is absent at creation time the admission controller accepts the request, allowing the resulting mirror pod to bind and use resources that should have been denied.
How to fix it
Upgrade affected Kubernetes control-plane components to a release containing the corrected NodeRestriction logic; if immediate patching is impossible, disable the DynamicResourceAllocation feature gate until the fix can be applied.
How to confirm the fix worked
Review admission controller source or running binary for the corrected claim-status check on pod creation; confirm that attempts to create mirror pods with unauthorized claims are now rejected in test clusters.
Typical attack path
- Compromise a cluster node with sufficient privileges to create pods
- Ensure the DynamicResourceAllocation feature gate is enabled on the API server
- Craft and submit a pod creation manifest referencing an unauthorized resource claim
- Observe successful scheduling of the mirror pod that now accesses the restricted resource
How to detect it
Search Kubernetes audit logs for pod creation events initiated by node identities that reference dynamic resource claims; correlate with API server logs showing absence of claim-status validation errors on creation versus status-update paths.
What your security team should do
- Prioritize upgrade of control-plane nodes to the fixed release within the next maintenance window
- Audit cluster configurations for unintended enablement of the DynamicResourceAllocation feature gate
- Add policy or admission webhook rules that explicitly block mirror-pod creation by nodes until patches are deployed
The record
A vulnerability exists in the NodeRestriction admission controller where nodes can bypass dynamic resource allocation authorization checks. When the DynamicResourceAllocation feature gate is enabled, the controller properly validates resource claim statuses during pod status updates but fails to perform equivalent validation during pod creation. This allows a compromised node to create mirror pods that access unauthorized dynamic resources, potentially leading to privilege escalation.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | k8s.io/kubernetes | 1.32.0 | 1.32.6 |
| Go | k8s.io/kubernetes | 1.33.0 | 1.33.2 |
| Chainguard | argo-cd-3.0 | 0 | 3.0.6-r2 |
| Chainguard | argo-cd-3.0-compat | 0 | 3.0.6-r2 |
| Chainguard | argo-cd-3.0-iamguarded-compat | 0 | 3.0.6-r2 |
| Chainguard | argo-cd-3.0-repo-server | 0 | 3.0.6-r2 |
| Chainguard | argo-cd-3.1 | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-3.1-compat | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-3.1-iamguarded-compat | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-3.1-repo-server | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-fips-3.0 | 0 | 3.0.9-r1 |
| Chainguard | argo-cd-fips-3.0-compat | 0 | 3.0.9-r1 |
| Chainguard | argo-cd-fips-3.0-iamguarded-compat | 0 | 3.0.9-r1 |
| Chainguard | argo-cd-fips-3.0-repo-server | 0 | 3.0.9-r1 |
| Chainguard | argo-cd-fips-3.1 | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-fips-3.1-compat | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-fips-3.1-iamguarded-compat | 0 | 3.1.0-r1 |
| Chainguard | argo-cd-fips-3.1-repo-server | 0 | 3.1.0-r1 |
| Chainguard | azuredisk-csi-1.32 | 0 | 1.32.7-r2 |
| Chainguard | azuredisk-csi-1.32-compat | 0 | 1.32.7-r2 |
| Chainguard | azuredisk-csi-1.33 | 0 | 1.33.1-r2 |
| Chainguard | azuredisk-csi-1.33-compat | 0 | 1.33.1-r2 |
| Chainguard | azuredisk-csi-fips-1.32 | 0 | 1.32.7-r2 |
| Chainguard | azuredisk-csi-fips-1.33 | 0 | 1.33.1-r2 |
| Chainguard | azurefile-csi-1.33 | 0 | 1.33.2-r1 |
| Chainguard | azurefile-csi-1.33-compat | 0 | 1.33.2-r1 |
| Chainguard | azurefile-csi-fips-1.32 | 0 | 1.32.4-r2 |
| Chainguard | azurefile-csi-fips-1.32-compat | 0 | 1.32.4-r2 |
| Chainguard | azurefile-csi-fips-1.33 | 0 | 1.33.2-r1 |
| Chainguard | azurefile-csi-fips-1.33-compat | 0 | 1.33.2-r1 |
| Chainguard | blob-csi-1.26 | 0 | 1.26.5-r51 |
| Chainguard | blob-csi-1.26-compat | 0 | 1.26.5-r51 |
| Chainguard | blob-csi-fips-1.26 | 0 | 1.26.5-r51 |
| Chainguard | blob-csi-fips-1.26-compat | 0 | 1.26.5-r51 |
| Chainguard | calico-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-apiserver-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-apiserver-compat-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-apiserver-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-app-policy-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-app-policy-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-cni-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-cni-compat-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-cni-compat-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-cni-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-felix-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-felix-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-goldmane-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-goldmane-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-key-cert-provisioner-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-key-cert-provisioner-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-kube-controllers-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-kube-controllers-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-node-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-node-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-pod2daemon-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-pod2daemon-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-pod2daemon-flexvol-compat-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-typha-client-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-typha-client-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-typhad-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-typhad-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-whisker-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-whisker-backend-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-whisker-backend-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calico-whisker-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calicoctl-3.30 | 0 | 3.30.2-r1 |
| Chainguard | calicoctl-fips-3.30 | 0 | 3.30.2-r1 |
| Chainguard | cloud-provider-gcp-cloud-controller-manager | 0 | 33.1.1-r2 |
| Chainguard | cloud-provider-gcp-cloud-controller-manager-compat | 0 | 33.1.1-r2 |
| Chainguard | cloud-provider-gcp-cloud-controller-manager-fips | 0 | 33.1.1-r2 |
| Chainguard | cloud-provider-gcp-cloud-controller-manager-fips-compat | 0 | 33.1.1-r2 |
| Chainguard | cluster-autoscaler-1.32 | 0 | 1.32.1-r6 |
| Chainguard | cluster-autoscaler-1.32-compat | 0 | 1.32.1-r6 |
| Chainguard | cluster-autoscaler-fips-1.32 | 0 | 1.32.1-r5 |
| Chainguard | cluster-autoscaler-fips-1.32-compat | 0 | 1.32.1-r5 |
| Chainguard | docker-machine-driver-harvester | 0 | 1.0.6-r4 |
| Chainguard | emissary | 0 | 3.10.0-r6 |
| Chainguard | emissary-apiext | 0 | 3.10.0-r6 |
| Chainguard | emissary-fips | 0 | 3.10.0-r3 |
| Chainguard | emissary-oci-entrypoint | 0 | 3.10.0-r6 |
| Chainguard | kubernetes-csi-driver-hostpath | 0 | 1.17.0-r1 |
| Chainguard | longhorn-share-manager-1.8 | 0 | 1.8.2-r2 |
| Chainguard | longhorn-share-manager-1.8-compat | 0 | 1.8.2-r2 |
| Chainguard | longhorn-share-manager-fips-1.8 | 0 | 1.8.2-r3 |
| Chainguard | longhorn-share-manager-fips-1.8-compat | 0 | 1.8.2-r3 |
| Chainguard | mesosphere-vsphere-csi | 0 | 3.5.0-r1 |
| Chainguard | mesosphere-vsphere-csi-driver | 0 | 3.5.0-r1 |
| Chainguard | mesosphere-vsphere-csi-syncer | 0 | 3.5.0-r1 |
| Chainguard | node-feature-discovery-0.17 | 0 | 0.17.3-r3 |
| Chainguard | node-feature-discovery-fips-0.17 | 0 | 0.17.3-r2 |
| Chainguard | node-feature-discovery-fips-0.17-gc | 0 | 0.17.3-r2 |
| Chainguard | node-feature-discovery-fips-0.17-kubectl-nfd | 0 | 0.17.3-r2 |
| Chainguard | node-feature-discovery-fips-0.17-master | 0 | 0.17.3-r2 |
| Chainguard | node-feature-discovery-fips-0.17-topology-updater | 0 | 0.17.3-r2 |
| Chainguard | node-feature-discovery-fips-0.17-worker | 0 | 0.17.3-r2 |
| Chainguard | py3.10-ambassador | 0 | 3.10.0-r6 |
| Chainguard | py3.11-ambassador | 0 | 3.10.0-r6 |
| Chainguard | py3.12-ambassador | 0 | 3.10.0-r6 |
| Chainguard | py3.13-ambassador | 0 | 3.10.0-r6 |
| Chainguard | rancher-2.11 | 0 | 2.11.2-r2 |
| Chainguard | rancher-2.12 | 0 | 2.12.1-r0 |
| Chainguard | rancher-agent-2.11 | 0 | 2.11.2-r2 |
| Chainguard | rancher-agent-2.12 | 0 | 2.12.1-r0 |
| Chainguard | rancher-fleet | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-agent | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-agent-fips | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-cli | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-cli-fips | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-controller | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-controller-fips | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-fips | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-fips-agent | 0 | 0.12.4-r1 |
| Chainguard | rancher-fleet-termination-log | 0 | 0.12.4-r1 |
| Chainguard | rancher-system-agent | 0 | 0.3.12-r3 |
| Chainguard | vcluster | 0 | 0.26.0-r1 |
| Chainguard | vcluster-cli | 0 | 0.26.0-r1 |
| Chainguard | vcluster-syncer | 0 | 0.26.0-r1 |
| Chainguard | yunikorn-k8shim | 0 | 1.7.0-r1 |
| Chainguard | yunikorn-k8shim-compat | 0 | 1.7.0-r1 |
| Chainguard | yunikorn-k8shim-fips | 0 | 1.7.0-r1 |
| Debian:11 | kubernetes | 0 | 1.20.5+really1.20.2-1 |
| Debian:12 | kubernetes | 0 | 1.20.5+really1.20.2-1 |
| Debian:13 | kubernetes | 0 | 1.20.5+really1.20.2-1 |
| Wolfi | argo-cd-3.0 | 0 | 3.0.6-r2 |
| Wolfi | argo-cd-3.0-compat | 0 | 3.0.6-r2 |
| Wolfi | argo-cd-3.0-repo-server | 0 | 3.0.6-r2 |
| Wolfi | argo-cd-3.1 | 0 | 3.1.0-r1 |
| Wolfi | argo-cd-3.1-compat | 0 | 3.1.0-r1 |
| Wolfi | argo-cd-3.1-repo-server | 0 | 3.1.0-r1 |
| Wolfi | azuredisk-csi-1.33 | 0 | 1.33.1-r2 |
| Wolfi | azuredisk-csi-1.33-compat | 0 | 1.33.1-r2 |
| Wolfi | azurefile-csi-1.33 | 0 | 1.33.2-r1 |
| Wolfi | azurefile-csi-1.33-compat | 0 | 1.33.2-r1 |
| Wolfi | blob-csi-1.26 | 0 | 1.26.5-r51 |
| Wolfi | blob-csi-1.26-compat | 0 | 1.26.5-r51 |
| Wolfi | calico-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-apiserver-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-apiserver-compat-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-app-policy-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-cni-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-cni-compat-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-felix-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-goldmane-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-key-cert-provisioner-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-kube-controllers-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-node-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-pod2daemon-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-pod2daemon-flexvol-compat-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-typha-client-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-typhad-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-whisker-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calico-whisker-backend-3.30 | 0 | 3.30.2-r1 |
| Wolfi | calicoctl-3.30 | 0 | 3.30.2-r1 |
| Wolfi | cloud-provider-gcp-cloud-controller-manager | 0 | 33.1.1-r2 |
| Wolfi | cloud-provider-gcp-cloud-controller-manager-compat | 0 | 33.1.1-r2 |
| Wolfi | cluster-autoscaler-1.32 | 0 | 1.32.1-r6 |
| Wolfi | cluster-autoscaler-1.32-compat | 0 | 1.32.1-r6 |
| Wolfi | docker-machine-driver-harvester | 0 | 1.0.6-r4 |
| Wolfi | emissary | 0 | 3.10.0-r6 |
| Wolfi | emissary-apiext | 0 | 3.10.0-r6 |
| Wolfi | emissary-oci-entrypoint | 0 | 3.10.0-r6 |
| Wolfi | kubernetes-csi-driver-hostpath | 0 | 1.17.0-r1 |
| Wolfi | mesosphere-vsphere-csi | 0 | 3.5.0-r1 |
| Wolfi | mesosphere-vsphere-csi-driver | 0 | 3.5.0-r1 |
| Wolfi | mesosphere-vsphere-csi-syncer | 0 | 3.5.0-r1 |
| Wolfi | node-feature-discovery-0.17 | 0 | 0.17.3-r3 |
| Wolfi | py3.10-ambassador | 0 | 3.10.0-r6 |
| Wolfi | py3.11-ambassador | 0 | 3.10.0-r6 |
| Wolfi | py3.12-ambassador | 0 | 3.10.0-r6 |
| Wolfi | py3.13-ambassador | 0 | 3.10.0-r6 |
| Wolfi | rancher-2.11 | 0 | 2.11.2-r2 |
| Wolfi | rancher-2.12 | 0 | 2.12.1-r0 |
| Wolfi | rancher-agent-2.11 | 0 | 2.11.2-r2 |
| Wolfi | rancher-agent-2.12 | 0 | 2.12.1-r0 |
| Wolfi | rancher-fleet | 0 | 0.12.4-r1 |
| Wolfi | rancher-fleet-agent | 0 | 0.12.4-r1 |
| Wolfi | rancher-fleet-cli | 0 | 0.12.4-r1 |
| Wolfi | rancher-fleet-controller | 0 | 0.12.4-r1 |
| Wolfi | rancher-fleet-termination-log | 0 | 0.12.4-r1 |
| Wolfi | rancher-system-agent | 0 | 0.3.12-r3 |
| Wolfi | vcluster | 0 | 0.26.0-r1 |
| Wolfi | vcluster-cli | 0 | 0.26.0-r1 |
| Wolfi | vcluster-syncer | 0 | 0.26.0-r1 |
| Wolfi | yunikorn-k8shim | 0 | 1.7.0-r1 |
| Wolfi | yunikorn-k8shim-compat | 0 | 1.7.0-r1 |
| go | k8s.io/kubernetes | 1.32.0 | 1.32.6 |
| go | k8s.io/kubernetes | 1.33.0 | 1.33.2 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250730T213748-1.1 |
Related vulnerabilities
- CVE-2025-13281 A half-blind Server Side Request Forgery (SSRF) vulnerability exists in… Also affects k8s.io/kubernetes
- CVE-2025-5187 A vulnerability exists in the NodeRestriction admission controller in Kubernetes clusters… Also affects k8s.io/kubernetes
- CVE-2025-1767 This CVE only affects Kubernetes clusters that utilize the in-tree gitRepo volume to… Also affects k8s.io/kubernetes
- CVE-2024-9042 This CVE affects only Windows worker nodes. Also affects k8s.io/kubernetes
- CVE-2025-0426 A security issue was discovered in Kubernetes where a large number of container… Also affects k8s.io/kubernetes
- CVE-2024-10220 The Kubernetes kubelet component allows arbitrary command execution via specially crafted… Also affects k8s.io/kubernetes
- CVE-2024-0793 A flaw was found in kube-controller-manager. Also affects k8s.io/kubernetes
- CVE-2024-5321 A security issue was discovered in Kubernetes clusters with Windows nodes where… Also affects k8s.io/kubernetes