Description
Daptin is a GraphQL/JSON-API headless CMS. Prior to 0.12.26, the global `LanguageMiddleware` in `server/language.go` passes the raw `Accept-Language` header from `LanguageMiddlewareFunc` through `GetLanguagePreference` to `golang.org/x/text/language.ParseAcceptLanguage` without a size or shape filter. The guard for CVE-2022-32149 counts hyphens but not underscores, even though the internal parser normalizes underscores to hyphens. Long lists of underscore-separated language subtags longer than eight characters bypass the guard. These subtags fail the `len <= 8` length check in `golang.org/x/text/internal/language/parse.go`, causing repeated `gobble` operations to move the entire remaining buffer through `runtime.memmove`. With many invalid subtags, this repeated buffer movement takes quadratic work. Unauthenticated requests to the public landing page or `/api` can consume disproportionate CPU, with a 256 KiB header already causing seconds of processing and larger input permitted by the default 1 MiB header ceiling. `resource.CheckErr` also logs the entire invalid header, amplifying cost, while normal successful HTTP responses can conceal the denial-of-service traffic. Repeated requests can saturate server CPU. This issue is fixed in version 0.12.26.
Published: 2026-10-30
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Denial of Service (CPU)
Action: Immediate Patch
AI Analysis

Impact

The vulnerability originates in Daptin's LanguageMiddleware, which forwards raw Accept‑Language headers to a language parser without sanitizing underscore separators. Long sequences of underscore–separated language subtags longer than eight characters bypass the guard logic and trigger repeated buffer movements that consume CPU time quadratically. An attacker can send unauthenticated requests with a crafted header of up to 1 MiB, causing the server to spend minutes processing the header while also logging the entire payload, amplifying the denial‑of‑service cost. The impact is a denial of service that can saturate application CPU resources; normal HTTP responses may hide the abuse.

Affected Systems

Daptin, the GraphQL/JSON‑API headless CMS, is affected in all releases prior to 0.12.26. The vulnerability resides in the global LanguageMiddleware component that parses Accept‑Language headers.

Risk and Exploitability

The CVSS score of 8.7 classifies this flaw as high severity. EPSS is not available, so the exploitation probability is uncertain, but the attack is remotely exploitable via unauthenticated HTTP requests to the public page or /api. The flaw is not listed in the CISA KEV catalog, yet the potential for rapid CPU amplification makes it a valuable target for attackers. The attack path requires no special privileges; the victim only needs to observe the affected service and send a crafted header.

Generated by OpenCVE AI on October 30, 2026 at 20:05 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to version 0.12.26 or later, where the underscore separator check has been fixed.
  • Configure the application or network filter to limit the Accept‑Language header size to 256 KiB or less.
  • Add a pre‑processing step to reject Accept‑Language headers that contain underscore characters or language subtags exceeding eight characters, or log and drop the entire request.

Generated by OpenCVE AI on October 30, 2026 at 20:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-rhj7-vh3v-mcq6 Daptin: ParseAcceptLanguage `_` separator bypass enables >250x CPU amplification via Accept-Language header in LanguageMiddleware
History

Fri, 30 Oct 2026 21:15:00 +0000

Type Values Removed Values Added
First Time appeared Daptin
Daptin daptin
Vendors & Products Daptin
Daptin daptin

Fri, 30 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Description Daptin is a GraphQL/JSON-API headless CMS. Prior to 0.12.26, the global `LanguageMiddleware` in `server/language.go` passes the raw `Accept-Language` header from `LanguageMiddlewareFunc` through `GetLanguagePreference` to `golang.org/x/text/language.ParseAcceptLanguage` without a size or shape filter. The guard for CVE-2022-32149 counts hyphens but not underscores, even though the internal parser normalizes underscores to hyphens. Long lists of underscore-separated language subtags longer than eight characters bypass the guard. These subtags fail the `len <= 8` length check in `golang.org/x/text/internal/language/parse.go`, causing repeated `gobble` operations to move the entire remaining buffer through `runtime.memmove`. With many invalid subtags, this repeated buffer movement takes quadratic work. Unauthenticated requests to the public landing page or `/api` can consume disproportionate CPU, with a 256 KiB header already causing seconds of processing and larger input permitted by the default 1 MiB header ceiling. `resource.CheckErr` also logs the entire invalid header, amplifying cost, while normal successful HTTP responses can conceal the denial-of-service traffic. Repeated requests can saturate server CPU. This issue is fixed in version 0.12.26.
Title Daptin: ParseAcceptLanguage `_` separator bypass enables >250x CPU amplification via Accept-Language header in LanguageMiddleware
Weaknesses CWE-400
CWE-407
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T19:39:33.382Z

Reserved: 2026-07-13T14:16:29.572Z

Link: CVE-2026-62160

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-30T19:18:32.473

Modified: 2026-10-30T20:17:11.587

Link: CVE-2026-62160

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T21:00:21Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-407

    Inefficient Algorithmic Complexity