XML Entity Expansion and Improper Input Validation in Kubernetes API serverGHSA-pmqp-h87c-mr78
HIGHFix: kubernetes/kubernetes#83261GHSA-pmqp-h87c-mr78 is a high-severity (CVSS 7.5) Improper Input Validation vulnerability in k8s.io/kubernetes. 1 public exploit reference exists, so weaponization risk is real. A fix is available for k8s.io/kubernetes — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
GHSA-pmqp-h87c-mr78 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 385,738 CVEs with a current EPSS score, this one falls in the 10–50% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
k8s.io/kubernetes🐹k8s.io/kubernetes🐹k8s.io/kubernetes🐹k8s.io/kubernetesReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Improper input validation in the Kubernetes API server in versions v1.0-1.12 and versions prior to v1.13.12, v1.14.8, v1.15.5, and v1.16.2 allows authorized users to send malicious YAML or JSON payloads, causing the API server to consume excessive CPU or memory, potentially crashing and becoming unavailable. Prior to v1.14.0, default RBAC policy authorized anonymous users to submit requests that could trigger this vulnerability. Clusters upgraded from a version prior to v1.14.0 keep the more permissive policy by default for backwards compatibility.
Specific Go Packages Affected
k8s.io/kubernetes/pkg/apiserver
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | k8s.io/kubernetes | ≥ 1.0.0&&< 1.13.12 | 1.13.12go get k8s.io/kubernetes@v1.13.12 |
| 🐹Go | k8s.io/kubernetes | ≥ 1.14.0&&< 1.14.8 | 1.14.8go get k8s.io/kubernetes@v1.14.8 |
| 🐹Go | k8s.io/kubernetes | ≥ 1.15.0&&< 1.15.5 | 1.15.5go get k8s.io/kubernetes@v1.15.5 |
| 🐹Go | k8s.io/kubernetes | ≥ 1.16.0&&< 1.16.2 | 1.16.2go get k8s.io/kubernetes@v1.16.2 |
Affected Products
kuberneteskubernetesopenshift container platformredhatResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for k8s.io/kubernetes, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update k8s.io/kubernetes to 1.13.12 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-pmqp-h87c-mr78 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How to detect GHSA-pmqp-h87c-mr78
A community-maintained Nuclei template exists for this CVE. You can scan for it directly:
nuclei -id ghsa-pmqp-h87c-mr78 -u https://target- Template
- Kubernetes API Server - YAML Parsing DoS (Billion Laughs)
- Severity
- high
- Impact
- Attackers can cause the API server to crash or become unavailable by consuming excessive CPU or memory resources.
- Remediation
- Upgrade to Kubernetes v1.13.12, v1.14.8, v1.15.5, v1.16.2 or later versions with fixed input validation.
Template by ProjectDiscovery nuclei-templates (ritikchaddha), MIT licensed. View the full template. Scan only systems you are authorised to test.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
For Red Hat OpenStack Platform, because kubernetes is not directly used in director-operator, the RHOSP Impact has been moved to Moderate.
| Product | Fixed in | Advisory |
|---|---|---|
| Openshift Service Mesh 1.0 | jaeger-0:v1.13.1.redhat5-1.el7 | RHEA-2019:3809 |
| OpenShift Service Mesh 1.0 | servicemesh-grafana-0:6.2.2-38.el8 | RHSA-2020:2861 |
| OpenShift Service Mesh 1.0 | servicemesh-prometheus-0:2.7.2-36.el8 | RHSA-2020:2863 |
| OpenShift Service Mesh 1.0 | servicemesh-cni-0:1.0.11-1.el8 | RHSA-2020:2870 |
| OpenShift Service Mesh 1.1 | servicemesh-operator-0:1.1.4-3.el8 | RHSA-2020:2795 |
| OpenShift Service Mesh 1.1 | servicemesh-grafana-0:6.4.3-11.el8 | RHSA-2020:2796 |
| OpenShift Service Mesh 1.1 | servicemesh-cni-0:1.1.4-2.el8 | RHSA-2020:2799 |
| Red Hat OpenShift Container Platform 3.10 | atomic-openshift-0:3.10.181-1.git.0.3ab4b3d.el7 | RHSA-2019:3239 |
Frequently Asked Questions
Is GHSA-pmqp-h87c-mr78 in your dependencies?
Find it across Go, including transitive dependencies.