CVE-2020-8554 Kubernetes man in the middle using LoadBalancer or ExternalIPs
Attackers with service creation privileges can intercept traffic by setting external IPs or patching LoadBalancer status, requiring API server updates.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2020-8554?
CVE-2020-8554 is a medium-severity missing authorization vulnerability in Kubernetes Kubernetes, published on 21 Jan 2021. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.externalIPs field, to intercept traffic to that IP address. Additionally, an attacker who is able to patch the status (which is considered a privileged operation and should not typically be granted to users) of a LoadBalancer service can set the status.loadBalancer.ingress.ip to similar effect.
Weakness: CWE-283
Which versions are affected by CVE-2020-8554?
2 open source packages ship an affected version, including k8s.io/kubernetes. It affects 4 products.
| Package | Affected | Fixed in |
|---|---|---|
k8s.io/kubernetes Go | All versions to 1.22.0 | None |
k8s.io/kubernetes Go | All versions to 1.22.0 | None |
Products include Kubernetes Kubernetes, Oracle Communications Cloud Native Core Network Slice Selection Function, Oracle Communications Cloud Native Core Policy, Oracle Communications Cloud Native Core Service Communication Proxy.
How do I fix CVE-2020-8554?
Apply the vendor's patch.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2020-8554 being exploited?
There is no known exploitation of CVE-2020-8554 in the wild and no public exploit code.
Public exploit code: 5 proofs of concept on GitHub.
Other vulnerabilities in Kubernetes Kubernetes
- CVE-2018-1002105 Privilege Escalation in Kubernetes
- CVE-2017-1000056 Kubernetes Privilege Escalation
- CVE-2016-1906 Authorization bypass in Openshift
- CVE-2023-3676 Kubernetes - Windows nodes - Insufficient input sanitization leads to privilege escalation
- CVE-2023-3955 Kubernetes - Windows nodes - Insufficient input sanitization leads to privilege escalation
Sources
Also known as AZL-31696, AZL-31731, AZL-34893, AZL-35135, DEBIAN-CVE-2020-8554, GHSA-j9wf-vvm6-4r9w and 12 more.