As mitigations to a report from 2019 and CVE-2020-8555, Kubernetes attempts to prevent proxied connections from accessing link-local or localhost networks when making user-driven connections to Services, Pods, Nodes, or StorageClass service providers. As part of this mitigation Kubernetes does a DNS name resolution check and validates that response IPs are not in the link-local (169.254.0.0/16) or localhost (127.0.0.0/8) range. Kubernetes then performs a second DNS resolution without validation for the actual connection. If a non-standard DNS server returns different non-cached responses, a user may be able to bypass the proxy IP restriction and access private networks on the control plane.
The product checks the state of a resource before using that resource, but the resource’s state can change between the check and the use in a way that invalidates the results of the check. This can cause the product to perform invalid actions when the resource is in an unexpected state.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Kubernetes | Kubernetes | * | 1.18.18 (including) |
Kubernetes | Kubernetes | 1.19.0 (including) | 1.19.10 (including) |
Kubernetes | Kubernetes | 1.20.0 (including) | 1.20.6 (including) |
Kubernetes | Kubernetes | 1.21.0 (including) | 1.21.0 (including) |
Kubernetes | Ubuntu | groovy | * |
Kubernetes | Ubuntu | hirsute | * |
Kubernetes | Ubuntu | impish | * |
Kubernetes | Ubuntu | kinetic | * |
Kubernetes | Ubuntu | lunar | * |
Kubernetes | Ubuntu | mantic | * |