{"id":"CVE-2026-53715","aliases":["GO-2026-6005"],"url":"https://o3.security/vulnerability/CVE-2026-53715","summary":"Envoy Gateway: Wasm cache ServeHTTP reads mappingPath2Cache without lock","details":"Vulnerability report without repro case. Repro case may be added later after harness is complete.\n\n**Preconditions (4):**\n- Pod-network reachability to :18002 (no auth)\n- Tenant can create EnvoyExtensionPolicy (baseline)\n- Attacker pod floods GET while churning EnvoyExtensionPolicy with distinct Wasm URLs\n- Read at :153 must overlap a write at :201/:209 (probabilistic, attacker controls both rates)\n\n**Description:**\n\nhttpserver.go:153 reads s.mappingPath2Cache with no lock while httpserver.go:201/209 write it under s.Lock(); the struct uses a plain map. Writer is tenant-reachable via EnvoyExtensionPolicy translation, reader is pod-network-reachable on :18002 with per-request goroutines. Go's concurrent map read+write detection calls runtime.throw, which net/http's per-conn recover cannot catch, so the controller process exits — cross-tenant control-plane DoS. Capped at MEDIUM: DoS-only, k8s restarts pod, timing-dependent trigger.","published":"2026-07-16T19:21:15Z","modified":"2026-09-10T03:50:51.590833286Z","cvss":{"score":5.3,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"Go","name":"github.com/envoyproxy/gateway","fixedVersion":"1.8.1"},{"ecosystem":"Go","name":"github.com/envoyproxy/gateway","fixedVersion":"1.7.4"}],"fix":null,"references":[{"type":"WEB","url":"https://github.com/envoyproxy/gateway/security/advisories/GHSA-8fv2-88gg-hm7q"},{"type":"PACKAGE","url":"https://github.com/envoyproxy/gateway"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-09-10T03:50:51.590833286Z"}}