Junglewise Threat Intelligence

CVE-2020-8554: Kubernetes traffic interception via unverified ExternalIPs ownership

CVE-2020-8554 · Severity: medium · CVSS 5 · Published 2022-02-08

Technologies: k8s.io/kubernetes (Go), Kubernetes. Vendors: Go, Kubernetes.

Executive brief

Kubernetes, the industry-standard platform for managing containerized applications, contains a design flaw that allows users with basic permissions to intercept network traffic. By creating a specific type of network service, an attacker can redirect traffic intended for external IP addresses to their own malicious containers. This could lead to the theft of sensitive data or the disruption of communications between different parts of a corporate network.

Technical details

A design flaw in the Kubernetes API server allows for man-in-the-middle (MitM) attacks via unverified ownership of IP addresses. An attacker with permissions to create or edit Services and Pods can set the 'spec.externalIPs' field in a ClusterIP service to a target IP, causing the cluster to route traffic for that IP to the attacker's service. Additionally, if an attacker has the highly privileged permission to patch the 'status' of a LoadBalancer service, they can achieve a similar effect by modifying 'status.loadBalancer.ingress.ip'. This is a fundamental architectural issue with no direct code patch; mitigation requires using admission controllers (like the externalip-webhook) to restrict or allowlist the use of ExternalIPs.

Affected products

  • Kubernetes Kubernetes <= 1.22.0

Timeline

  • 2020-12-04: disclosed: Issue first opened on GitHub
  • 2021-01-21: advisory: NVD publication date
  • 2022-02-08: advisory: GitHub Advisory published

References

Related threats