[ CVE-2026-118650 · Published 28 Oct 2026 ]
Echo's middleware.Static: `%2F`-encoded path bypasses route/group middleware guarding a statically-served path
CVSS 7.5
EPSS <1%Fix available
[ Why it matters ]Priority signals
- Public proof-of-concept exploit exists (CISA SSVC)
[ Description ]Official description
Echo is a Go web framework. Prior to 4.16.0 and 5.4.0, a globally mounted middleware.Static instance can interpret an encoded request path differently from Echo's router because the router matches the still-encoded path while the static handler uses the decoded URL.Path. The advisory demonstrates an encoded slash resolving to a file under the static root through the global static middleware, but the source is internally inconsistent about whether a route or group guard protects the corresponding literal path in that global-mount configuration. This issue is fixed in 4.16.0 and 5.4.0.
[ Fixes ]Fixes and patches
- github.com/labstack/echo/v5 5.4.0Fixed version · GitHub Advisories · go package github.com/labstack/echo/v5: upgrade to 5.4.0 or later (affected < 5.4.0)
- github.com/labstack/echo/v4 4.16.0Fixed version · GitHub Advisories · go package github.com/labstack/echo/v4: upgrade to 4.16.0 or later (affected < 4.16.0)
[ Packages ]Affected open-source packages
- github.com/labstack/echo/v5 goAffected < 5.4.0 · fixed in 5.4.0 · GHSA-375p-5qhx-8wq4
- github.com/labstack/echo/v4 goAffected < 4.16.0 · fixed in 4.16.0 · GHSA-375p-5qhx-8wq4