lin-snow Ech0 CPU amplification in i18n Middleware

Severity: high · CVSS 7.5 · Published 2026-07-14

Ech0 is a web framework component used for internationalization (i18n). A vulnerability in how it processes language preferences allows an unauthenticated attacker to overwhelm the server's processor by sending a specially crafted web request. This can lead to a denial-of-service (DoS) condition where the server becomes unresponsive to legitimate users, potentially causing significant operational downtime.

Technologies: github.com/lin-snow/ech0 (Go), Lin-Snow Ech0. Vendors: Go, Lin-Snow.

Quick answers

Is This vulnerability exploited in the wild?
No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.
How severe is This vulnerability?
High severity, with a CVSS score of 7.5, published 14 July 2026.
Which products and versions are affected?
github.com/lin-snow/ech0 (Go) < 5.0.1; Lin-Snow Ech0 < 5.0.1.
Is there a fix for This vulnerability?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is This vulnerability attacked?
It is attacked over the network, in a software library.
Am I affected?
Check whether you run github.com/lin-snow/ech0 (Go) or Lin-Snow Ech0 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.

Technical details

The i18n middleware in Ech0 passes the raw 'Accept-Language' HTTP header to the 'golang.org/x/text/language' parser without size or content validation. While the underlying Go library contains a guard against quadratic-time complexity for '-' separators, it fails to account for '_' separators, which are internally aliased to '-'. An attacker can send a 1MB header containing thousands of '_' separators to trigger O(N²) behavior in the parser's scanner. This results in significant CPU consumption (approx. 1.5s per request), enabling unauthenticated remote attackers to saturate server resources with minimal bandwidth. The issue is addressed in version 5.0.1 by implementing a limit on the number of separators allowed in the header.

Affected products

  • lin-snow Ech0 < 5.0.1

Timeline

  • 2026-06-04: disclosed
  • 2026-07-14: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.