---
id: CVE-2026-79658
title: >-
  Ech0 before 5.0.1 does not impose any size or shape limit on the
  Accept-Language header processed by its i18n middleware, which runs on every
  HTTP request
summary: >-
  Ech0 before 5.0.1 does not impose any size or shape limit on the
  Accept-Language header processed by its i18n middleware, which runs on every
  HTTP request. The header is passed unfiltered to go-i18n's NewLocalizer, which
  internally calls…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-400
published: '2026-08-25'
updated: '2026-08-29'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-79658'
references:
  - url: 'https://github.com/lin-snow/Ech0/security/advisories/GHSA-mqxv-9rm6-w8qc'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/ech0-before-denial-of-service-via-accept-language
    label: disclosure@vulncheck.com
tags:
  - nvd
epss: 0.00291
epssPercentile: 0.21922
ingestedAt: '2026-08-29T21:42:33.404Z'
---

## Overview

Ech0 before 5.0.1 does not impose any size or shape limit on the Accept-Language header processed by its i18n middleware, which runs on every HTTP request. The header is passed unfiltered to go-i18n's NewLocalizer, which internally calls golang.org/x/text/language.ParseAcceptLanguage. The CVE-2022-32149 mitigation in x/text caps '-' characters but not '_' characters, which the parser aliases to '-', allowing quadratic-time parsing to be triggered with a large header (up to Go's default 1 MiB) built from underscore separators. An unauthenticated attacker can send such requests to consume roughly 1.5 seconds of CPU each, and concurrent requests can saturate a multi-core server (denial of service).

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
