Description
nginx ignition is a user interface for the nginx web server. In versions 2.29.0 through 2.40.0, the gin i18n middleware in nginx-ignition's API server runs in front of every HTTP request and calls `golang.org/x/text/language.ParseAcceptLanguage` on the raw `Accept-Language` header without imposing any size or shape filter. The underlying parser has quadratic-time behaviour on long lists of malformed language tags. The CVE-2022-32149 guard that golang.org/x/text added in v0.3.8 caps the number of `-` characters in the input at 1000, but it does not cap `_` characters even though the parser's internal scanner aliases `_` to `-` before parsing. A single unauthenticated GET request with an `Accept-Language` header built out of `_` separators burns about 2.4 seconds of server CPU on the host running nginx-ignition; ten concurrent attackers saturate a ten-core box for the duration of the attack while consuming ~10 MiB/s of upstream bandwidth. Version 2.40.1 fixes this issue.
Published: 2026-09-21
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

The vulnerability arises when nginx-ignition 2.29.0 through 2.40.0 processes the raw Accept-Language header with golang.org/x/text/language.ParseAcceptLanguage without applying any size or shape limits. The parser exhibits quadratic-time behavior on long, malformed lists of language tags, causing a single unauthenticated GET request that uses a header composed of many '_' separators to consume roughly 2.4 seconds of CPU on a host. A similar CPU increase corresponds to about a 75‑fold amplification, and ten simultaneous attackers can saturate a ten‑core machine for the duration of the attack while also sending ~10 MiB/s of upstream traffic.

Affected Systems

The affected product is lucasdillmann’s nginx‑ignition. Versions from 2.29.0 up to, but not including, 2.40.1 are vulnerable; the fix is incorporated in 2.40.1.

Risk and Exploitability

With a CVSS score of 7.5, the vulnerability is considered high severity. The EPSS score is not available, and it is not listed in the CISA KEV catalog. The attack does not require authentication or privileged access; an attacker simply sends a crafted Accept‑Language header in an HTTP GET request to trigger the quadratic parsing routine. Because no input validation is performed, the vulnerability can be exploited remotely from the internet, making it a practical vector for distributed denial‑of‑service.

Generated by OpenCVE AI on September 21, 2026 at 15:39 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade nginx‑ignition to version 2.40.1 or later to apply the official fix.
  • If an upgrade is not immediately possible, configure a reverse proxy or firewall to reject or limit Accept‑Language headers that exceed a safe length.
  • Implement rate limiting or CPU usage monitoring on the host to detect and mitigate bursts of CPU consumption caused by malformed headers.

Generated by OpenCVE AI on September 21, 2026 at 15:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jr34-h97m-9hpx nginx ignition has ParseAcceptLanguage `_` separator bypass that enables ~75x CPU amplification via Accept-Language header in i18nMiddleware
History

Thu, 24 Sep 2026 23:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 21 Sep 2026 19:45:00 +0000

Type Values Removed Values Added
First Time appeared Lucasdillmann
Lucasdillmann nginx-ignition
Vendors & Products Lucasdillmann
Lucasdillmann nginx-ignition

Mon, 21 Sep 2026 14:30:00 +0000

Type Values Removed Values Added
Description nginx ignition is a user interface for the nginx web server. In versions 2.29.0 through 2.40.0, the gin i18n middleware in nginx-ignition's API server runs in front of every HTTP request and calls `golang.org/x/text/language.ParseAcceptLanguage` on the raw `Accept-Language` header without imposing any size or shape filter. The underlying parser has quadratic-time behaviour on long lists of malformed language tags. The CVE-2022-32149 guard that golang.org/x/text added in v0.3.8 caps the number of `-` characters in the input at 1000, but it does not cap `_` characters even though the parser's internal scanner aliases `_` to `-` before parsing. A single unauthenticated GET request with an `Accept-Language` header built out of `_` separators burns about 2.4 seconds of server CPU on the host running nginx-ignition; ten concurrent attackers saturate a ten-core box for the duration of the attack while consuming ~10 MiB/s of upstream bandwidth. Version 2.40.1 fixes this issue.
Title nginx ignition has ParseAcceptLanguage `_` separator bypass that enables ~75x CPU amplification via Accept-Language header in i18nMiddleware
Weaknesses CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Lucasdillmann Nginx-ignition
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-24T22:11:44.377Z

Reserved: 2026-07-10T17:38:57.110Z

Link: CVE-2026-61629

cve-icon Vulnrichment

Updated: 2026-09-24T22:11:37.803Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-21T15:17:30.477

Modified: 2026-09-24T23:17:13.280

Link: CVE-2026-61629

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T19:23:37Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling