{"id":"CVE-2026-73548","aliases":["BIT-envoy-2026-73548","EUVD-2026-84103","GHSA-3vhp-c83q-jqc2","openSUSE-SU-2026:11630-1"],"status":"published","title":"Envoy: Cross-user response poisoning via a generic (non-WebSocket) HTTP upgrade on Envoy's shared backend pool","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy forwards data for a configured non-WebSocket HTTP upgrade before the upstream accepts the upgrade. An unauthenticated HTTP/2 client can place a complete HTTP/1.1 request in extended CONNECT data; Envoy downgrades the request, writes the data unframed to a keep-alive HTTP/1.1 upstream, and returns the socket to the shared pool while the smuggled response remains queued. A different downstream client can then receive the attacker's response. The relevant scope boundary is that webSocket upgrades, plain CONNECT, disabled backend keep-alive, per-downstream pools, and max_requests_per_connection set to 1 are not affected by the demonstrated path. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00465,"percentile":0.40556,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-444"],"published":"2026-08-28T00:00:00Z","modified":"2026-10-28T11:23:06Z","fixes":[{"ecosystem":"Bitnami","package":"envoy","fixed_in":["1.36.10","1.37.6","1.38.4","1.39.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Bitnami","package":"envoy","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.36.10"},{"introduced":"1.37.0"},{"fixed":"1.37.6"},{"introduced":"1.38.0"},{"fixed":"1.38.4"},{"introduced":"1.39.0"},{"fixed":"1.39.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"istioctl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.30.4-1.1"}]}],"bundled":13}],"products":[{"vendor":"envoyproxy","product":"envoy"}],"references":[{"url":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-3vhp-c83q-jqc2","tags":["x_refsource_CONFIRM","exploit","Exploit","Vendor Advisory","advisory"]},{"url":"https://github.com/envoyproxy/envoy/commit/309855626966cff176155c821043ed3b44671361","tags":["x_refsource_MISC","Patch","fix"]},{"url":"https://github.com/envoyproxy/envoy/commit/3c7998545a9c9fb3933a4bc1907d92f0e752bc2b","tags":["x_refsource_MISC","Patch","fix"]},{"url":"https://github.com/envoyproxy/envoy/commit/4633b8cce3d15b8734eefe232e30c12b0140b91c","tags":["x_refsource_MISC","Patch","fix"]},{"url":"https://github.com/envoyproxy/envoy/commit/bd6711f2617658e28dfa3df3dace6bfe3cfc0766","tags":["x_refsource_MISC","Patch","fix"]},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.36.10","tags":["x_refsource_MISC","Release Notes","article","web"]},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.37.6","tags":["x_refsource_MISC","Release Notes","article","web"]},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.38.4","tags":["x_refsource_MISC","Release Notes","article","web"]},{"url":"https://github.com/envoyproxy/envoy/releases/tag/v1.39.1","tags":["x_refsource_MISC","Release Notes","article","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73548","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73548.json","tags":["advisory"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-48521","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-50572","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73511","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73512","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73513","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73546","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73547","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73548","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73549","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73550","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73551","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73552","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-73553","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-73548","title":"Envoy: Cross-user response poisoning via a generic (non-WebSocket) HTTP upgrade on Envoy's shared backend pool","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy forwards data for a configured non-WebSocket HTTP upgrade before the upstream accepts the upgrade. An unauthenticated HTTP/2 client can place a complete HTTP/1.1 request in extended CONNECT data; Envoy downgrades the request, writes the data unframed to a keep-alive HTTP/1.1 upstream, and returns the socket to the shared pool while the smuggled response remains queued. A different downstream client can then receive the attacker's response. The relevant scope boundary is that webSocket upgrades, plain CONNECT, disabled backend keep-alive, per-downstream pools, and max_requests_per_connection set to 1 are not affected by the demonstrated path. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","status":"published","published":"2026-09-21T19:35:15.275Z","modified":"2026-09-24T22:35:14.446Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T13:43:22.599321Z"}],"euvd":[{"id":"EUVD-2026-84103","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy forwards data for a configured non-WebSocket HTTP upgrade before the upstream accepts the upgrade. An unauthenticated HTTP/2 client can place a complete HTTP/1.1 request in extended CONNECT data; Envoy downgrades the request, writes the data unframed to a keep-alive HTTP/1.1 upstream, and returns the socket to the shared pool while the smuggled response remains queued. A different downstream client can then receive the attacker's response. The relevant scope boundary is that webSocket upgrades, plain CONNECT, disabled backend keep-alive, per-downstream pools, and max_requests_per_connection set to 1 are not affected by the demonstrated path. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","status":"published","published":"2026-09-21T19:35:15Z","modified":"2026-09-24T22:35:14Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T17:27:55.846756Z"}],"nvd":[{"id":"CVE-2026-73548","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy forwards data for a configured non-WebSocket HTTP upgrade before the upstream accepts the upgrade. An unauthenticated HTTP/2 client can place a complete HTTP/1.1 request in extended CONNECT data; Envoy downgrades the request, writes the data unframed to a keep-alive HTTP/1.1 upstream, and returns the socket to the shared pool while the smuggled response remains queued. A different downstream client can then receive the attacker's response. The relevant scope boundary is that webSocket upgrades, plain CONNECT, disabled backend keep-alive, per-downstream pools, and max_requests_per_connection set to 1 are not affected by the demonstrated path. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","status":"published","published":"2026-09-21T20:17:28.397Z","modified":"2026-10-05T14:19:45.96Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:12:50.368368Z"}],"osv":[{"id":"CVE-2026-73548","title":"Envoy: Cross-user response poisoning via a generic (non-WebSocket) HTTP upgrade on Envoy's shared backend pool","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy forwards data for a configured non-WebSocket HTTP upgrade before the upstream accepts the upgrade. An unauthenticated HTTP/2 client can place a complete HTTP/1.1 request in extended CONNECT data; Envoy downgrades the request, writes the data unframed to a keep-alive HTTP/1.1 upstream, and returns the socket to the shared pool while the smuggled response remains queued. A different downstream client can then receive the attacker's response. The relevant scope boundary is that webSocket upgrades, plain CONNECT, disabled backend keep-alive, per-downstream pools, and max_requests_per_connection set to 1 are not affected by the demonstrated path. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","status":"published","published":"2026-09-21T19:35:15.275Z","modified":"2026-10-28T11:23:06.504487518Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T15:45:16.365946Z"},{"id":"BIT-envoy-2026-73548","title":"Envoy: Cross-user response poisoning via a generic (non-WebSocket) HTTP upgrade on Envoy's shared backend pool","description":"Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy forwards data for a configured non-WebSocket HTTP upgrade before the upstream accepts the upgrade. An unauthenticated HTTP/2 client can place a complete HTTP/1.1 request in extended CONNECT data; Envoy downgrades the request, writes the data unframed to a keep-alive HTTP/1.1 upstream, and returns the socket to the shared pool while the smuggled response remains queued. A different downstream client can then receive the attacker's response. The relevant scope boundary is that webSocket upgrades, plain CONNECT, disabled backend keep-alive, per-downstream pools, and max_requests_per_connection set to 1 are not affected by the demonstrated path. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.","status":"published","published":"2026-09-29T08:43:12.086Z","modified":"2026-10-06T15:15:02.632416935Z","updated_at":"2026-11-02T15:28:29.563843Z"},{"id":"openSUSE-SU-2026:11630-1","title":"istioctl-1.30.4-1.1 on GA media","description":"These are all security issues fixed in the istioctl-1.30.4-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-08-28T00:00:00Z","modified":"2026-08-29T09:15:04.355652515Z","updated_at":"2026-11-02T16:58:39.516824Z"}]}}
