# CVE-2026-118654: Echo path traversal in static file handlers via dot segment normalization

Source: https://junglewise.ai/threats/cve-2026-118654-echo-is-a-go-web-framework-prior-to-4-16-0-and-5-4-0-echo-s  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-28. Updated: 2026-10-28  
License: CC BY 4.0 with a link back

CVE-2026-118654 · Severity: medium · CVSS 5.9 · Published 2026-10-28

Echo is a Go web framework used to build REST APIs and web services. The static file handler can normalize dot segments (like ".." and ".") after route matching, allowing an unauthenticated attacker to bypass route-level authentication middleware and read protected files through a public static filesystem mount. This is a regression from a previous security patch.

Technologies: [github.com/labstack/echo/v4 (Go)](https://junglewise.ai/threats/technologies/github-com-labstack-echo-v4), [github.com/labstack/echo/v5 (Go)](https://junglewise.ai/threats/technologies/github-com-labstack-echo-v5), [Labstack Echo](https://junglewise.ai/threats/technologies/labstack-echo). Vendors: [Go](https://junglewise.ai/threats/vendors/go), [Labstack](https://junglewise.ai/threats/vendors/labstack).

## Quick answers

**Is CVE-2026-118654 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-118654 being exploited in the wild.

**How severe is CVE-2026-118654?** Medium severity, with a CVSS score of 5.9, published 28 October 2026.

**Which products and versions are affected?** github.com/labstack/echo/v4 (Go) < 4.16.0, SEMVER:introduced=0,fixed=4.16.0; github.com/labstack/echo/v5 (Go) < 5.4.0, SEMVER:introduced=0,fixed=5.4.0; Labstack Echo before 4.16.0 and before 5.4.0.

**Is there a fix for CVE-2026-118654?** Yes. github.com/labstack/echo/v4 (Go): upgrade to 4.16.0 or later; github.com/labstack/echo/v5 (Go): upgrade to 5.4.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-118654 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-118654?** Check whether you run github.com/labstack/echo/v4 (Go), github.com/labstack/echo/v5 (Go) or Labstack Echo at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- github.com/labstack/echo/v4 (Go): upgrade to 4.16.0 or later

  ```sh
  go get github.com/labstack/echo/v4@v4.16.0
  ```

- github.com/labstack/echo/v5 (Go): upgrade to 5.4.0 or later

  ```sh
  go get github.com/labstack/echo/v5@v5.4.0
  ```


## Technical details

The vulnerability exists in Echo's static file handlers which normalize dot segments in file paths after the router has performed route matching. This allows a path like /assets/../admin/secret.txt to bypass authentication middleware protecting /admin/* routes and serve the file through an unprotected /assets static mount. The issue is an incomplete fix for CVE-2026-55677; the static middleware now validates dot segments after unescaping and during path resolution to prevent this bypass.

## Affected products

- labstack Echo before 4.16.0 and before 5.4.0

## Identifiers

- CVE-2026-118654
- GHSA-3pmx-cf9f-34xr
- GO-2026-6881

## Timeline

- 2026-10-28: disclosed

## References

- [https://github.com/labstack/echo/commit/b838391e2eade87ae7e5a09d7bb5087bec271ec1](https://github.com/labstack/echo/commit/b838391e2eade87ae7e5a09d7bb5087bec271ec1)
- [https://github.com/labstack/echo/commit/fc410094b2f3415cf2bf5204082137b205bfd5af](https://github.com/labstack/echo/commit/fc410094b2f3415cf2bf5204082137b205bfd5af)

## Related threats

- [Echo web framework arbitrary URI scheme redirect](https://junglewise.ai/threats/cve-2026-118658-echo-is-a-go-web-framework-prior-to-4-15-2-and-5-1-1-context)
- [Echo Go web framework scheme header spoofing and HSTS bypass](https://junglewise.ai/threats/cve-2026-118657-echo-is-a-go-web-framework-prior-to-4-16-0-and-5-4-0-context)
- [Echo open redirect in sanitizeURI with trailing slash redirect](https://junglewise.ai/threats/cve-2026-118656-echo-is-a-go-web-framework-prior-to-4-16-0-and-5-4-0-sanitizeuri)
- [Echo path traversal via double URL encoding in Static middleware](https://junglewise.ai/threats/cve-2026-118655-echo-is-a-go-web-framework-prior-to-4-15-3-and-5-2-0-middleware)
- [Echo Go web framework rate-limit bypass via spoofed IP headers](https://junglewise.ai/threats/cve-2026-118653-echo-is-a-go-web-framework-from-4-0-0-until-5-1-0-context-realip)
