CVE-2026-58436: Gitea quadratic-time DoS in Locale middleware via Accept-Language header

CVE-2026-58436 · Severity: high · CVSS 4 · Published 2026-07-21

Gitea, a popular self-hosted Git service, is vulnerable to a denial-of-service attack that can be triggered by unauthenticated users. By sending a specially crafted web request with a malicious language header, an attacker can force the server to consume excessive CPU resources. This can lead to significant performance degradation or a complete service outage for all users.

Technologies: Gitea, code.gitea.io/gitea (Go), gitea.dev (Go). Vendors: Gitea, Go.

Quick answers

Is CVE-2026-58436 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-58436 being exploited in the wild.
How severe is CVE-2026-58436?
High severity, with a CVSS score of 4, published 21 July 2026.
Which products and versions are affected?
Gitea < 1.27.0; code.gitea.io/gitea (Go) < 1.27.0, SEMVER:introduced=0,fixed=1.27.0; gitea.dev (Go) SEMVER:introduced=0,fixed=1.27.0.
Is there a fix for CVE-2026-58436?
Yes. code.gitea.io/gitea (Go): upgrade to 1.27.0 or later; gitea.dev (Go): upgrade to 1.27.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-58436 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-58436?
Check whether you run Gitea, code.gitea.io/gitea (Go) or gitea.dev (Go) 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.

How to fix

  • code.gitea.io/gitea (Go): upgrade to 1.27.0 or later
    go get code.gitea.io/gitea@v1.27.0
  • gitea.dev (Go): upgrade to 1.27.0 or later
    go get gitea.dev@v1.27.0

Technical details

The Gitea Locale middleware calls golang.org/x/text/language.ParseAcceptLanguage on raw Accept-Language headers without prior validation. While the underlying Go library contains a guard against quadratic-time complexity (CVE-2022-32149) by limiting '-' characters, it fails to account for '_' characters which are aliased to '-' during parsing. An unauthenticated attacker can send a 1 MiB header containing many '_' separators to bypass the guard and trigger O(N²) behavior in the parser's scanner. This allows a small number of concurrent requests to saturate server CPU. The vulnerability is fixed in Gitea version 1.27.0 by implementing a limit on the number of separators allowed in the header.

Affected products

  • Gitea Gitea < 1.27.0

Identifiers

  • CVE-2026-58436
  • GHSA-fw57-jgch-pgf3
  • GO-2026-6055

Timeline

  • 2026-07-13: advisory: Initial GitHub Advisory published
  • 2026-07-21: disclosed: Full advisory details released
  • 2026-07-21: patched: Vulnerability addressed in version 1.27.0

References

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