Envoy Gateway: Wasm HTTP fetch decompresses gzip without output-size limit
Description
Vulnerability report without repro case. Repro case may be added later after harness is complete.
Preconditions (4): - Tenant can create EnvoyExtensionPolicy (baseline) - Attacker hosts a gzip-bomb at a reachable URL - sha256 unset (optional field; check is post-decompression anyway) - No operator Wasm-URL allowlist (none exists in code)
Description
getFileFromGZ calls io.ReadAll on a raw gzip.Reader (httpfetcher.go:216) with no output bound, while the compressed input is capped at 256 MiB (httpfetcher.go:139). The bytes originate from a tenant-controlled EnvoyExtensionPolicy.spec.wasm[].code.http.url (envoyextensionpolicy.go:1077 → cache.go:248 → httpfetcher.go:147 → :233), so an untrusted tenant can point at a ~10 MiB gzip-of-zeros and force ~10 GiB allocation in the shared controller process. All candidate guards execute either before the body is buffered or after decompression. OOM-kills, restarts, re-reconciles same CR, crash-loops — persistent cross-tenant control-plane outage with PR:L/AC:L and scope change → HIGH despite availability-only.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
github.com/envoyproxy/gatewayGo | >= 1.8.0-rc.0, < 1.8.1 | 1.8.1 |
github.com/envoyproxy/gatewayGo | < 1.7.4 | 1.7.4 |
Affected products
35- osv-coords34 versionspkg:apk/chainguard/datadog-cluster-agent-7.73pkg:apk/chainguard/datadog-cluster-agent-7.74pkg:apk/chainguard/datadog-cluster-agent-7.76pkg:apk/chainguard/datadog-cluster-agent-7.77pkg:apk/chainguard/datadog-cluster-agent-7.78pkg:apk/chainguard/datadog-cluster-agent-7.79pkg:apk/chainguard/datadog-cluster-agent-7.80pkg:apk/chainguard/datadog-cluster-agent-fips-7.73pkg:apk/chainguard/datadog-cluster-agent-fips-7.74pkg:apk/chainguard/datadog-cluster-agent-fips-7.76pkg:apk/chainguard/datadog-cluster-agent-fips-7.77pkg:apk/chainguard/datadog-cluster-agent-fips-7.78pkg:apk/chainguard/datadog-cluster-agent-fips-7.79pkg:apk/chainguard/datadog-cluster-agent-fips-7.80pkg:apk/chainguard/gitlab-operatorpkg:apk/chainguard/gitlab-operator-fipspkg:apk/chainguard/tigera-operator-1.38pkg:apk/chainguard/tigera-operator-1.40pkg:apk/chainguard/tigera-operator-1.41pkg:apk/chainguard/tigera-operator-1.42pkg:apk/chainguard/tigera-operator-fips-1.38pkg:apk/chainguard/tigera-operator-fips-1.40pkg:apk/chainguard/tigera-operator-fips-1.41pkg:apk/chainguard/tigera-operator-fips-1.42pkg:apk/wolfi/datadog-cluster-agent-7.73pkg:apk/wolfi/datadog-cluster-agent-7.74pkg:apk/wolfi/datadog-cluster-agent-7.76pkg:apk/wolfi/datadog-cluster-agent-7.77pkg:apk/wolfi/datadog-cluster-agent-7.78pkg:apk/wolfi/datadog-cluster-agent-7.79pkg:apk/wolfi/datadog-cluster-agent-7.80pkg:apk/wolfi/tigera-operator-1.40pkg:apk/wolfi/tigera-operator-1.41pkg:apk/wolfi/tigera-operator-1.42
< 7.73.3-r23+ 33 more
- (no CPE)range: < 7.73.3-r23
- (no CPE)range: < 7.74.1-r24
- (no CPE)range: < 7.76.3-r32
- (no CPE)range: < 7.77.3-r23
- (no CPE)range: < 7.78.4-r16
- (no CPE)range: < 7.79.2-r15
- (no CPE)range: < 7.80.4-r7
- (no CPE)range: < 7.73.3-r26
- (no CPE)range: < 7.74.1-r26
- (no CPE)range: < 7.76.3-r32
- (no CPE)range: < 7.77.3-r29
- (no CPE)range: < 7.78.4-r14
- (no CPE)range: < 7.79.2-r8
- (no CPE)range: < 7.80.4-r5
- (no CPE)range: < 3.1.2-r1
- (no CPE)range: < 3.2.0-r0
- (no CPE)range: < 0
- (no CPE)range: < 1.40.13-r4
- (no CPE)range: < 0
- (no CPE)range: < 1.42.4-r2
- (no CPE)range: < 0
- (no CPE)range: < 1.40.13-r5
- (no CPE)range: < 0
- (no CPE)range: < 1.42.4-r4
- (no CPE)range: < 7.73.3-r23
- (no CPE)range: < 7.74.1-r24
- (no CPE)range: < 7.76.3-r32
- (no CPE)range: < 7.77.3-r23
- (no CPE)range: < 7.78.4-r16
- (no CPE)range: < 7.79.2-r15
- (no CPE)range: < 7.80.4-r7
- (no CPE)range: < 1.40.13-r4
- (no CPE)range: < 0
- (no CPE)range: < 1.42.4-r2
Patches
Vulnerability mechanics
References
2News mentions
0No linked articles in our index yet.