Envoy Gateway is a popular open-source platform for managing Envoy Proxy as an API or application gateway, either standalone or within Kubernetes clusters. It simplifies deployment, security, and scaling of Envoy, making it a go-to choice for many organizations. Unfortunately, a critical security flaw—CVE-2025-24030—has recently been discovered that puts clusters using Envoy Gateway (versions prior to 1.2.6) at risk of malicious admin command execution via a path traversal vulnerability.
This post breaks down the vulnerability, demonstrates how it can be exploited, and provides actionable steps to mitigate the risk until you upgrade.
Understanding the Vulnerability
Vulnerability ID: CVE-2025-24030
Affected Software: Envoy Gateway < 1.2.6
Attack Vector: Kubernetes user with cluster access
Risk Level: High
What’s the Problem?
Before v1.2.6, a user with any access to the Kubernetes cluster could exploit a path traversal weakness in Envoy Gateway to execute arbitrary admin commands on associated Envoy Proxies.
By abusing the path traversal, an attacker can directly interact with the Envoy Admin interface—even though it’s supposed to be firewalled—enabling them to:
- Dump Envoy’s running configuration (which may include secrets, certificates, or internal endpoints)
Access restricted admin endpoints
No special privileges are required beyond *some* Kubernetes API access.
How Does the Attack Work?
The root cause is improper sanitization of URLs when Envoy Gateway proxies requests to Envoy’s Admin API. By crafting a URL containing path traversal characters (like ../), an attacker can break out of intended endpoint restrictions.
Example Exploit Flow
Suppose an attacker can send requests to the Gateway’s admin API. By crafting a problematic path, like:
/envoy-gateway/internal/admin/../admin
This request, when interpreted by the vulnerable proxy routing logic, is resolved by Envoy Gateway as:
/admin
Now, the full power of Envoy's Admin interface is exposed.
From here, an attacker can easily trigger admin commands such as
- /config_dump (get the full internal config, exposing secrets)
- /quitquitquit (graceful service termination)
- /reset_counters
- /clusters
Proof-of-Concept Attack
Here’s a simple curl call an attacker could use from inside a Kubernetes cluster with network access to Envoy Gateway’s internal services:
curl http://<envoy-gateway-pod>:19000/envoy-gateway/internal/admin/../admin/config_dump
Or, to kill Envoy
curl -X POST http://<envoy-gateway-pod>:19000/envoy-gateway/internal/admin/../admin/quitquitquit
The risk here is anyone with minimal permissions (or a compromised pod) could leverage this attack path.
Official Patch
The Envoy Gateway team has resolved this in version 1.2.6.
Update ASAP:
- Envoy Gateway Release Notes
Workaround: Restrict Admin Interface
As an immediate mitigation, administrators can patch Envoy’s bootstrap configuration to only expose the prometheus stats endpoint, preventing access to high-risk admin functions.
This is doable through EnvoyProxy’s bootstrap config patch.
Example Bootstrap Config Patch
This YAML snippet restricts the admin interface to *only* the /stats/prometheus endpoint (blocklisting everything else):
spec:
envoyProxy:
configPatches:
- applyTo: BOOTSTRAP
match:
context: ANY
patch:
operation: MERGE
value:
admin:
access_log_path: "/dev/null"
address:
socket_address:
address: 127...1
port_value: 19000
filter_chains:
- filters:
- name: envoy.filters.http.admin
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: admin
route_config:
virtual_hosts:
- name: prometheus_only
domains: ["*"]
routes:
- match:
path: /stats/prometheus
route:
cluster: admin
typed_per_filter_config:
envoy.filters.http.admin:
"@type": type.googleapis.com/envoy.extensions.filters.http.admin.v3.Admin
http_filters:
- name: envoy.filters.http.router
typed_config: {}
Upgrade All Gateways to Envoy Gateway 1.2.6 or above, at the earliest opportunity.
2. Apply the Bootstrap Patch if you cannot upgrade immediately, restricting all admin endpoints except /stats/prometheus.
3. Rotate Credentials/Secrets if you have reason to believe configs may have been exposed.
References and Further Reading
- CVE-2025-24030 NVD Entry
- Envoy Gateway Security Advisories
- Envoy Gateway 1.2.6 Release Notes
- Envoy Admin Documentation
- Path Traversal Attacks Explained (OWASP)
Conclusion
CVE-2025-24030 is a serious, easy-to-exploit vulnerability affecting all unpatched installations of Envoy Gateway before 1.2.6. If an attacker can reach your internal network’s Gateway, they can leverage this bug to disrupt your services or steal sensitive config.
Upgrade now, and apply the provided patch if an upgrade is delayed. Always follow the project’s security guidelines and restrict admin interfaces to keep your infrastructure secure.
Timeline
Published on: 01/23/2025 04:15:07 UTC