Echo is a Go web framework. From 4.0.0 until 4.16.1 and 5.4.1, Echo's Proxy middleware selects a raw tunnel from a client WebSocket upgrade request before verifying that the configured upstream accepted the upgrade. If the upstream rejects the upgrade with an ordinary keep-alive response, later HTTP requests on the connection are sent directly to that upstream without passing through Echo's router or route-specific middleware. This can bypass authentication or authorization enforced only by Echo routes, but requires an accessible proxy route, a cooperating rejected-upgrade response, and a target without independent upstream authorization. This issue is fixed in 4.16.1 and 5.4.1.
https://github.com/labstack/echo/security/advisories/GHSA-cxf3-9h37-7rr8
https://github.com/labstack/echo/releases/tag/v5.4.1
https://github.com/labstack/echo/releases/tag/v4.16.1
https://github.com/labstack/echo/commit/3fb0ba7e17645bb65611e2a08875d0a2f65c421f
https://github.com/labstack/echo/commit/1855061e572ae9dab727c811d8382f266bfbaaec
Published: 2026-10-28
Updated: 2026-10-29
Named Vulnerability: GHSA-cxf3-9h37-7rr8
Base Score: 6.4
Vector: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:N
Severity: Medium
Base Score: 9.1
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Severity: Critical
Base Score: 9.1
Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Severity: Critical
EPSS: 0.0043