CVE-2019-11253

7.5 HIGH

📋 TL;DR

This CVE-2019-11253 vulnerability in Kubernetes allows authorized users to send malicious YAML or JSON payloads to the API server, causing excessive CPU or memory consumption that can crash the server and make it unavailable. It affects Kubernetes versions v1.0-1.12 and versions prior to v1.13.12, v1.14.8, v1.15.5, and v1.16.2. Prior to v1.14.0, default RBAC policy authorized anonymous users to exploit this vulnerability.

💻 Affected Systems

Products:
  • Kubernetes
Versions: v1.0-1.12 and versions prior to v1.13.12, v1.14.8, v1.15.5, v1.16.2
Operating Systems: All platforms running Kubernetes
Default Config Vulnerable: ⚠️ Yes
Notes: Clusters upgraded from versions prior to v1.14.0 maintain the more permissive RBAC policy by default for backward compatibility, keeping them vulnerable to anonymous exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service affecting the entire Kubernetes cluster, making all managed applications and services unavailable.

🟠

Likely Case

API server crashes or becomes unresponsive, disrupting cluster management operations and potentially affecting application availability.

🟢

If Mitigated

Minimal impact with proper RBAC restrictions and network controls limiting access to authorized users only.

🌐 Internet-Facing: HIGH if API server is exposed to internet and running vulnerable versions with default RBAC policies.
🏢 Internal Only: MEDIUM to HIGH depending on RBAC configuration and user access controls within the internal network.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending specially crafted YAML or JSON payloads to the Kubernetes API server endpoints. Prior to v1.14.0, anonymous users could exploit this by default.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v1.13.12, v1.14.8, v1.15.5, v1.16.2 and later

Vendor Advisory: https://groups.google.com/forum/#!topic/kubernetes-security-announce/jk8polzSUxs

Restart Required: Yes

Instructions:

1. Upgrade Kubernetes to patched versions: v1.13.12+, v1.14.8+, v1.15.5+, or v1.16.2+. 2. Restart API server components. 3. Verify the upgrade with kubectl version.

🔧 Temporary Workarounds

Restrict API Server Access

linux

Limit network access to Kubernetes API server using firewall rules or network policies.

iptables -A INPUT -p tcp --dport 6443 -s trusted_ip_range -j ACCEPT
iptables -A INPUT -p tcp --dport 6443 -j DROP

Strengthen RBAC Policies

all

Remove anonymous access and restrict authenticated user permissions to minimum required.

kubectl delete clusterrolebinding system:anonymous
kubectl delete clusterrolebinding system:unauthenticated

🧯 If You Can't Patch

  • Implement strict network segmentation and firewall rules to limit API server access to trusted sources only.
  • Apply restrictive RBAC policies to eliminate anonymous access and minimize authenticated user permissions.

🔍 How to Verify

Check if Vulnerable:

Check Kubernetes version with kubectl version and compare against affected versions. Also verify RBAC policies for anonymous access.

Check Version:

kubectl version --short

Verify Fix Applied:

Confirm Kubernetes version is v1.13.12+, v1.14.8+, v1.15.5+, or v1.16.2+ using kubectl version. Test API server functionality.

📡 Detection & Monitoring

Log Indicators:

  • Unusual CPU/memory spikes in API server metrics
  • Multiple large YAML/JSON payload requests
  • API server crash/restart events

Network Indicators:

  • High volume of requests to API server endpoints (6443, 8080)
  • Large payload sizes in API requests

SIEM Query:

source="kube-apiserver" AND ("out of memory" OR "panic" OR "crash") OR (request_size > 1000000)

🔗 References

📤 Share & Export