# CVE-2026-118657: Echo Go web framework scheme header spoofing and HSTS bypass

Source: https://junglewise.ai/threats/cve-2026-118657-echo-is-a-go-web-framework-prior-to-4-16-0-and-5-4-0-context  
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-118657 · Severity: medium · CVSS 5.9 · Published 2026-10-28

Echo is a Go web framework that handles HTTP requests for web applications. The framework unconditionally trusted HTTP scheme headers (X-Forwarded-Proto, etc.) from any client, allowing attackers to spoof HTTPS connections. This enables bypass of HTTPS-redirect enforcement and suppression of security headers meant to prevent man-in-the-middle attacks.

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-118657 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-118657 being exploited in the wild.

**How severe is CVE-2026-118657?** 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-118657?** 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. Until then: Configure Echo#SchemeExtractor to use a restricted extraction strategy (ExtractSchemeDirect or a custom implementation) if direct backend access is not prevented by a trusted proxy, or ensure a reverse proxy is configured to overwrite forwarded headers before they reach Echo. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

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

**Am I affected by CVE-2026-118657?** 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
  ```


Configure Echo#SchemeExtractor to use a restricted extraction strategy (ExtractSchemeDirect or a custom implementation) if direct backend access is not prevented by a trusted proxy, or ensure a reverse proxy is configured to overwrite forwarded headers before they reach Echo.

## Technical details

Echo's Context.Scheme() method accepted forwarded scheme headers from untrusted clients, violating the principle of only trusting such headers from known proxies. An attacker reaching Echo directly over HTTP could send X-Forwarded-Proto: https to bypass HTTPSRedirect middleware; similarly, behind a TLS-terminating proxy, an attacker could claim HTTP to prevent the Strict-Transport-Security header. The fix restricts forwarded header trust to requests from loopback, link-local, private addresses, or Unix sockets, with configurable SchemeExtractor strategies.

## Affected products

- labstack Echo before 4.16.0 and before 5.4.0

## Identifiers

- CVE-2026-118657
- GHSA-2ffq-g2xg-c22p
- GO-2026-6879

## 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 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 path traversal in static file handlers via dot segment normalization](https://junglewise.ai/threats/cve-2026-118654-echo-is-a-go-web-framework-prior-to-4-16-0-and-5-4-0-echo-s)
- [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)
