Skip to main content

Echo Framework CVE-2026-55677

| EUVDEUVD-2026-39800 HIGH
Path Traversal (CWE-22)
2026-06-26 GitHub_M GHSA-vfp3-v2gw-7wfq
7.5
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI
7.5 HIGH

Remote unauthenticated request with an encoded slash needs no privileges or interaction (AV:N/AC:L/PR:N/UI:N); impact is unauthorized file reads only, so C:H but I:N/A:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat
7.5 HIGH
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Jun 26, 2026 - 18:02 EUVD
Analysis Generated
Jun 26, 2026 - 17:23 vuln.today

DescriptionCVE.org

Echo is a Go web framework. Prior to 4.15.3 and 5.2.0, 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. This vulnerability is fixed in 4.15.3 and 5.2.0.

AnalysisAI

Path-based access control bypass in the LabStack Echo Go web framework (versions prior to 4.15.3 and 5.2.0) lets remote attackers retrieve protected static files without authorization. The flaw stems from the router matching routes on the raw encoded path (keeping %2F literal) while StaticDirectoryHandler decodes %2F to '/' before filesystem resolution, so a crafted URL slips past route-level guards. There is no public exploit identified at time of analysis and no CISA KEV listing; CVSS is 7.5 (confidentiality-only).

Technical ContextAI

Echo is a high-performance HTTP router/framework for Go. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) manifesting as a parser-differential: the routing layer and the static file handler disagree on when to URL-decode the percent-encoded slash (%2F). Because the router evaluates the encoded form, a route guard registered to protect a path prefix never fires, yet StaticDirectoryHandler later normalizes %2F into a real directory separator and resolves the file on disk. The affected component is identified by CPE cpe:2.3:a:labstack:echo (all versions before the fixes). This is a classic encode/decode normalization mismatch rather than a memory-safety bug, so impact is unauthorized read access rather than code execution.

RemediationAI

Vendor-released patch: upgrade to Echo 4.15.3 on the 4.x branch or 5.2.0 on the 5.x branch, which align path decoding between the router and StaticDirectoryHandler; see the advisory at https://github.com/labstack/echo/security/advisories/GHSA-vfp3-v2gw-7wfq. If immediate upgrade is not possible, reduce exposure by not relying on Echo route middleware to protect files served via StaticDirectoryHandler - instead enforce authorization inside the static handler or move sensitive files out of the served directory; you can also normalize and reject requests containing encoded slashes (%2F, %2f) at a reverse proxy or WAF before they reach Echo, accepting that this may break legitimate URLs that intentionally encode slashes. Avoid co-locating access-controlled assets and public static assets under the same StaticDirectoryHandler root until patched.

Vendor StatusVendor

Share

CVE-2026-55677 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy