{"id":"GHSA-wcrf-9vrr-854f","summary":"Envoy Gateway: Authentication Bypass via Improper Input Validation in EnvoyExtensionPolicy Lua Allows Secret Disclosure","details":"### Impact\n\nThe `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/`.\n\nThis allows Lua code submitted as an `EnvoyExtensionPolicy` to read arbitrary files from the gateway controller pod's filesystem during Strict validation (the default), including:\n\n* `/etc/passwd`\n* Kubernetes SA tokens via `//var/run/secrets/kubernetes.io/serviceaccount/token`\n* TLS certificates via `//certs/...`\n* Process environment via `//proc/self/environ`\n\nThese credentials can be used to read sensitive information from the K8s API Server or from the Gateway XDS server.\n\n### Patches\n\nThis has been patched in versions \u003e= v1.7.4 and v1.8.1\n\n  - Collapse redundant path separators (`//` to `/`) so double-slash variants like `//etc/passwd` and `//var/run/secrets/...` are matched by the critical-path check.\n  - Rewrite the traversal check to reject any `.` or `..` segment in any position and across both separator styles (catches `/etc/./passwd`, `./etc/passwd`, `/etc/.`).\n\n### Workarounds\nPlease refer to the `Warning` section in [Lua docs](https://gateway.envoyproxy.io/v1.8/tasks/extensibility/lua/) for measures to reduce risk.\n\n### Credits\n\nEnvoy Gateway thanks @dashingDragon and @Donjon-Cerberus for reporting this issue.","aliases":["BIT-envoy-gateway-2026-53713","CVE-2026-53713","GO-2026-6011"],"modified":"2026-09-21T09:40:57.764254404Z","published":"2026-07-16T19:23:38Z","database_specific":{"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2026-07-16T19:23:38Z","nvd_published_at":null,"cwe_ids":["CWE-20"]},"references":[{"type":"WEB","url":"https://github.com/envoyproxy/gateway/security/advisories/GHSA-wcrf-9vrr-854f"},{"type":"PACKAGE","url":"https://github.com/envoyproxy/gateway"}],"affected":[{"package":{"name":"github.com/envoyproxy/gateway","ecosystem":"Go","purl":"pkg:golang/github.com/envoyproxy/gateway"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.8.0-rc.0"},{"fixed":"1.8.1"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-wcrf-9vrr-854f/GHSA-wcrf-9vrr-854f.json"}},{"package":{"name":"github.com/envoyproxy/gateway","ecosystem":"Go","purl":"pkg:golang/github.com/envoyproxy/gateway"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.7.4"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-wcrf-9vrr-854f/GHSA-wcrf-9vrr-854f.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L"}]}