Advisory GHSA-vfp3-v2gw-7wfq references a vulnerability in the following Go modules:
Description:
Summary
Echo's router and static file handler disagree on URL path decoding. The router matches routes using the raw encoded path (preserving %2F as-is), while StaticDirectoryHandler unescapes %2F to / before resolving filesystem paths. This allows an attacker to bypass route-level access controls and read static files without authorization.
Details
Root cause 1 — router.go lines 798-802:
The router uses req.URL.RawPath for route matching when useEscapedPathForRouting is false (the default). This means /admin%2Fsecret.txt is treated as a single path segment and...
References:
Cross references:
- github.com/labstack/echo/v4 appears in 2 other report(s):
- github.com/labstack/echo/v5 appears in 1 other report(s):
See doc/quickstart.md for instructions on how to triage this report.
id: GO-ID-PENDING
modules:
- module: github.com/labstack/echo
vulnerable_at: 3.3.10+incompatible
- module: github.com/labstack/echo/v4
versions:
- fixed: 4.15.3
vulnerable_at: 4.15.2
- module: github.com/labstack/echo/v5
versions:
- fixed: 5.2.0
vulnerable_at: 5.1.1
summary: |-
Echo: Encoded slash (%2F) bypasses route-level protection and exposes static
files in github.com/labstack/echo
cves:
- CVE-2026-55677
ghsas:
- GHSA-vfp3-v2gw-7wfq
references:
- advisory: https://github.com/advisories/GHSA-vfp3-v2gw-7wfq
- advisory: https://github.com/labstack/echo/security/advisories/GHSA-vfp3-v2gw-7wfq
- advisory: https://nvd.nist.gov/vuln/detail/CVE-2026-55677
- fix: https://github.com/labstack/echo/commit/8d1ae9d3360a71672418856d58753af25f2c3986
- fix: https://github.com/labstack/echo/commit/c3fa2a27ff92b2b8db360de614f999ef1da24725
- fix: https://github.com/labstack/echo/pull/3009
- fix: https://github.com/labstack/echo/pull/3011
- web: https://github.com/labstack/echo/releases/tag/v4.15.3
- web: https://github.com/labstack/echo/releases/tag/v5.2.0
source:
id: GHSA-vfp3-v2gw-7wfq
created: 2026-08-25T17:02:41.195131061Z
review_status: UNREVIEWED
Advisory GHSA-vfp3-v2gw-7wfq references a vulnerability in the following Go modules:
Description:
Summary
Echo's router and static file handler disagree on URL path decoding. The router matches routes using the raw encoded path (preserving
%2Fas-is), whileStaticDirectoryHandlerunescapes%2Fto/before resolving filesystem paths. This allows an attacker to bypass route-level access controls and read static files without authorization.Details
Root cause 1 —
router.golines 798-802:The router uses
req.URL.RawPathfor route matching whenuseEscapedPathForRoutingis false (the default). This means/admin%2Fsecret.txtis treated as a single path segment and...References:
Cross references:
See doc/quickstart.md for instructions on how to triage this report.