Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L
Attacker needs policy-authoring rights so PR:L, delivered via K8s API (AV:N/AC:L); stolen credentials reach separate API/XDS systems justifying S:C with dominant confidentiality impact (C:H).
Primary rating from Vendor (https://github.com/envoyproxy/gateway).
CVSS VectorVendor: https://github.com/envoyproxy/gateway
Lifecycle Timeline
3DescriptionCVE.org
Impact
The to_absolute_normalized_path function (security.lua:28-43) does not collapse redundant path separators (// → /). On Linux, //etc/passwd is equivalent to /etc/passwd (POSIX path semantics), but is_critical_path fails to match the double-slash variant because //etc/passwd does not start with /etc/.
This allows Lua code submitted as an EnvoyExtensionPolicy to read arbitrary files from the gateway controller pod's filesystem during Strict validation (the default), including:
/etc/passwd- Kubernetes SA tokens via
//var/run/secrets/kubernetes.io/serviceaccount/token - TLS certificates via
//certs/... - Process environment via
//proc/self/environ
These credentials can be used to read sensitive information from the K8s API Server or from the Gateway XDS server.
Patches
This has been patched in versions >= v1.7.4 and v1.8.1
- Collapse redundant path separators (
//to/) so double-slash variants like//etc/passwdand//var/run/secrets/...are matched by the critical-path check. - Rewrite the traversal check to reject any
.or..segment in any position and across both separator styles (catches/etc/./passwd,./etc/passwd,/etc/.).
Workarounds
Please refer to the Warning section in Lua docs for measures to reduce risk.
Credits
Envoy Gateway thanks @dashingDragon and @Donjon-Cerberus for reporting this issue.
Articles & Coverage 2
AnalysisAI
Arbitrary file disclosure in Envoy Gateway's controller allows a low-privileged tenant who can create an EnvoyExtensionPolicy to read sensitive files from the gateway controller pod. A path-normalization gap in the security.lua critical-path check (CWE-20) lets attacker-supplied Lua bypass the read restriction using double-slash paths (e.g. //etc/passwd), exposing Kubernetes service-account tokens, TLS certificates, and process environment. No public exploit identified at time of analysis, but the vendor advisory documents the exact bypass and CVSS is rated 9.1.
Technical ContextAI
Envoy Gateway is the Kubernetes control plane that manages Envoy proxy data planes via the Gateway API; it lets operators attach Lua scripts to traffic through the EnvoyExtensionPolicy CRD, and by default runs these under 'Strict' validation which is supposed to block reads of critical filesystem paths. The flaw is in the to_absolute_normalized_path function (security.lua:28-43), which fails to collapse redundant separators, so //etc/passwd normalizes on Linux (POSIX semantics) to /etc/passwd yet does not literally begin with '/etc/', causing is_critical_path to miss it. Rooted in CWE-20 (Improper Input Validation), the same class of defect also permitted '.'/'..' segment tricks (e.g. /etc/./passwd) that the patch additionally hardened. Affected packages are the Go module github.com/envoyproxy/gateway.
RemediationAI
Vendor-released patch: upgrade to Envoy Gateway v1.7.4 (1.7.x branch) or v1.8.1 (1.8.x branch) or later, which collapse redundant '//' separators before the critical-path check and reject any '.' or '..' segment in any position across both separator styles. If immediate patching is not possible, follow the risk-reduction 'Warning' guidance in the Lua extensibility docs (https://gateway.envoyproxy.io/v1.8/tasks/extensibility/lua/): specifically restrict who can create or modify EnvoyExtensionPolicy resources via Kubernetes RBAC so untrusted tenants cannot submit Lua, and avoid granting Lua-policy authoring to shared/multi-tenant namespaces - the trade-off is reduced self-service extensibility for tenants. Advisory with full detail: https://github.com/envoyproxy/gateway/security/advisories/GHSA-wcrf-9vrr-854f.
More in Kubernetes
View allA critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter
A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne
Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can
Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass
Same weakness CWE-20 – Improper Input Validation
View allVendor StatusVendor
SUSE
Severity: Critical| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-78070
GHSA-wcrf-9vrr-854f