Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Gitea instance
-
ExploitCraft ~1MB issue/comment with many links
-
ExecutionTrigger quadratic keyword rescan in reference parser
-
ImpactExhaust CPU core and hold DB transaction
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
|
| Exploitation Conditions | Requires an authenticated Gitea account (version ≤1.27.3) with permission to create issues or post comments; the attacker submits a large (~1 MB) issue/comment body whose structure maximizes Markdown links, exploiting the per-link rescan for close/reopen keywords. No special non-default configuration is needed and no user interaction is required (UI:N), but exploitation is limited by the authentication requirement (PR:L) and by any restrictions on account registration or issue/comment creation; instances that forbid self-registration or limit who can open issues meaningfully constrain who can trigger it. |
| Impact | This is a moderate, authentication-gated denial-of-service issue (CWE-407, algorithmic complexity) rather than a top-priority emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, 6.5) is internally consistent with the description: a network-reachable, low-complexity attack requiring a valid authenticated account that can submit issue or comment content, with impact limited purely to availability (C:N/I:N). All corroborating signals point to low real-world urgency: EPSS is 0.16% (4th percentile), there is no CISA KEV listing, and SSVC scores Exploitation=none, Automatable=no, Technical Impact=partial. No public exploit code was identified - the only source-code artifact provided is the upstream fix (PR #39396 introducing a bounded keyword window), not a weaponized POC. One signal to weigh carefully: CVSS rates A:H, while SSVC calls technical impact only 'partial' and the description scopes the effect to one busy CPU core plus a held database transaction for several minutes - this is a degradation/resource-exhaustion condition, more consistent with A:L in practice, so A:H may slightly overstate severity for a single request (though repeated requests could compound into a broader outage). The PR:L requirement is the main limiter: an attacker needs the ability to post issues/comments, so instances that disable public registration or restrict issue creation materially reduce exposure. |
| Exploit ScenarioDerived | An attacker with (or who self-registers) an authenticated Gitea account opens an issue or posts a comment containing a crafted body of roughly 1 MB structured to maximize Markdown links preceded by long text. Because reference parsing rescans all preceding text for action keywords ('closes', 'fixes') once per link, processing becomes quadratic, pinning a CPU core for several minutes and holding a database transaction open; repeating this across accounts or requests degrades availability for the whole instance. No public exploit code is known, but the quadratic trigger is simple to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Algorithmic complexity denial-of-service in Gitea 1.27.3 and earlier allows an authenticated user with permission to create issues or post comments to stall a server process by submitting a crafted ~1 MB body containing many Markdown links, keeping a CPU core busy for minutes while holding a database transaction open. The flaw is a quadratic rescan of preceding text for close/reopen keywords such as "closes" or "fixes" performed once per link (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, score 6.5). It is authentication-gated and no public exploit code has been identified at time of analysis; EPSS is low at 0.16% (4th percentile) and CISA SSVC records Exploitation: none.
RemediationAI
Vendor-released patch: upgrade to Gitea 28.0.0, which incorporates the fix from PR #39396 that caps the keyword look-back window and eliminates the quadratic scan (see advisory GHSA-467c-4w7p-8427 and the release announcement at https://blog.gitea.com/release-of-28.0.0/). If immediate upgrade is not feasible, constrain who can trigger the parser: disable self-registration and tighten issue/comment creation permissions so only trusted accounts can post bodies, accepting the trade-off that this reduces collaboration for untrusted contributors. Front-end request-body size limits (for example a reverse-proxy max body size well below 1 MB on issue/comment API and web endpoints) will block the ~1 MB payloads but may reject legitimate large pastes and attachments. Per-IP and per-user rate limiting on issue and comment creation reduces the rate at which a hostile user can occupy CPU and database transactions, at the cost of throttling normal heavy users, and placing strict CPU/memory limits or worker isolation around the Gitea process limits blast radius but can degrade throughput under legitimate load. Note that the vulnerability is authenticated (CVSS PR:L) and no public exploit code has been identified at time of analysis, so these compensating controls are proportionate mitigations rather than emergency actions.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Gitea's reference parser in modules/references/references.go resolves Markdown cross-references ("closes #1", "fixes #2") by calling getCrossReference, which previously executed issueCloseKeywordsPat.FindSubmatchIndex(content[:start]) and the equivalent reopen pattern against the entire byte prefix of the document preceding each link. Because this full-prefix scan runs once for every detected reference, the total work grows quadratically with the number of links in a body, the textbook signature of CWE-407 (Inefficient Algorithmic Complexity). The upstream fix (PR #39396) bounds the search to a computed window - issueKeywordWindow, derived from the longest keyword times utf8.UTFMax plus 3 runes to accommodate case-folded Unicode characters such as the long s and the ": " delimiter - and scans only content[windowStart:start], restoring linear behavior while preserving keyword detection semantics. The vulnerable code path is reached whenever an authenticated actor submits issue or comment content, so the exposure is tied to issue/comment write permissions rather than to any specific repository configuration.
Know when Gitea gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Network-submitted content with low complexity but needs an authenticated issue/comment author (PR:L); impact is availability-only (A:H as a resource-exhaustion DoS, arguably A:L), no confidentiality or integrity effect.
Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).
CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
Lifecycle Timeline
2DescriptionCVE.org
When processing issue and comment bodies, Gitea scanned the entire preceding text for action keywords such as "closes" or "fixes" once per Markdown link, giving processing time quadratic in the input size. An authenticated user able to submit issue or comment content could send a crafted body of about 1 MB that keeps a CPU core busy for several minutes while holding a database transaction open.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi
Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r
Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any
Path traversal in Gitea's Org-mode (`.org`) markup renderer allows an attacker who can get Org-mode content rendered by
Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec
models/repo_mirror.go in Gitea before 1.7.6 and 1.8.x before 1.8-RC3 mishandles mirror repo URL settings, leading to rem
Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica
Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran
EUVD-2026-93920
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB