Description
Echo is a Go web framework. Prior to 4.15.3 and 5.2.0, middleware.Static can decode an already decoded Request.URL.Path a second time. Double-encoded separators can consequently be reconstructed before filesystem resolution. This can reach a file under a guarded route when the static middleware is registered globally. This issue is fixed in 4.15.3 and 5.2.0.
References7
- github.com/labstack/echo/commit/a9ede66a5a7196411131beb1ee801e7…
- github.com/labstack/echo/commit/c3fa2a27ff92b2b8db360de614f999e…
- github.com/labstack/echo/issues/2599
- github.com/labstack/echo/pull/3006
- github.com/labstack/echo/releases/tag/v4.15.3
- github.com/labstack/echo/releases/tag/v5.2.0
- github.com/labstack/echo/security/advisories/GHSA-xwq5-6cqp-vx96
Metrics
- CVSS 3.1
-
5.9
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - EPSS — exploit probability
- 0% percentile: 23 · as of 3 November 2026
- CWE
- CWE-174
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.