Summary
CVE-2026-79658 is an uncontrolled resource consumption (denial-of-service) vulnerability in Ech0, a self-hosted application, affecting all versions before 5.0.1. The flaw resides in Ech0’s i18n middleware, which fails to bound the size or structure of the Accept-Language HTTP header before passing it to Go’s language-tag parser. A single unauthenticated, network-delivered request can force the server to burn excessive CPU time, and a small number of concurrent attackers can saturate a multi-core server.
Technical details
- Root cause: the i18n middleware calls go-i18n’s
NewLocalizer, which invokesgolang.org/x/text/language.ParseAcceptLanguage. The parser’s internal scanner treats underscore (_) characters the same as hyphens (-), but Ech0 only limited the count of hyphens (per the earlier upstream fix for CVE-2022-32149), leaving underscore-separated tokens unrestricted. - Trigger conditions: an attacker sends a request with an
Accept-Languageheader (up to ~1 MiB) composed of many underscore-separated tokens, invoking the parser’s quadratic-time (O(N²)) tag-splitting behavior (gobblefunction). - Attack vector: network, unauthenticated, no user interaction required; the malicious header can be sent to any endpoint that passes through the i18n middleware, and the response still returns HTTP 200, making the attack harder to spot via error-rate monitoring.
- Impact: a single crafted request can consume roughly 1.5 seconds of CPU; combining it with an additional
X-Localeheader increases this further. A handful of concurrent attackers can exhaust CPU capacity on a multi-core server, denying service to legitimate users.
Affected software
- Ech0 (github.com/lin-snow/Ech0) versions ≤ 4.8.2 (all versions prior to 5.0.1)
- Fixed in version 5.0.1 and later
Severity
- CVSS v3.1 Base Score: 7.5 (HIGH) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - A CVSS v4.0 scoring of this issue has also been published at 8.7 (HIGH), reflecting the network-exploitable, low-complexity availability impact.
Mitigation and recommended actions
- Immediate: upgrade Ech0 to version 5.0.1 or later, which restricts the size/structure of the
Accept-Languageheader before it reaches the language parser. - If patching is not immediately possible: deploy a reverse proxy or WAF rule that caps
Accept-Language(and similar locale-related headers such asX-Locale) header length and rejects headers containing excessive hyphen/underscore-separated tokens; monitor for abnormal CPU usage correlated with oversized locale headers.

