Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate and open repository settings
-
DeliveryConfigure crafted external tracker regex with alternating capture groups
-
ExploitTrigger rendering of matching content (e.g. view README)
-
ExecutionInvalid slice index causes runtime panic
-
ImpactGitea process crashes, denying service to all users
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an actor who can edit a repository's external issue tracker settings (a repository administrator; on instances allowing self-service repo creation, effectively any authenticated user via their own repo) and who sets a malicious external-tracker regular expression using alternating capture groups. The crash then fires whenever matching content is rendered for any viewer, such as a README. Limiting factors: the external issue tracker must be configurable by the attacker and populated with the crafted regex (not a default configuration), and privileges over repo settings are needed - so despite the input's PR:N, this is not exploitable against a default install by a fully anonymous attacker unless open registration plus repo creation is permitted. |
| Impact | Signals here are moderate and partly conflicting. The authoritative CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) scores this as a remotely reachable, no-privilege, availability-only flaw. However, the description explicitly states the attacker must be 'a user who can edit a repository's external issue tracker settings,' which is a repo-administrator action - so PR:N likely understates the privilege requirement and should be treated as PR:L/PR:H; this conflict should be verified against the GHSA advisory. The exploitation-likelihood signals are low-to-moderate: EPSS is 0.16% (4th percentile), SSVC reports Exploitation:none and Technical Impact:partial, and there is no CISA KEV listing - so there is no evidence of active exploitation (no public exploit identified at time of analysis). The mitigating privilege requirement is offset by a serious scope consideration: a single malicious repo configuration causes a runtime panic that terminates the whole Gitea process, denying service to ALL users of the instance, and SSVC marks it Automatable:yes. Net: this is a credible denial-of-service priority for multi-tenant/open-registration Gitea instances but not an emergency wormable network bug - it is lower real-world risk than the 7.5 'network/unauthenticated' reading alone implies, because an attacker first needs the ability to configure a repo's external tracker. |
| Exploit ScenarioDerived | An attacker with the ability to configure a repository's external issue tracker (a repo admin, or any registered user on an open-registration instance using their own repo) sets a crafted external-tracker regular expression that uses alternating capture groups. When any user subsequently views content that matches the pattern - for example rendering that repository's README - Gitea computes invalid slice indexes and panics, terminating the process and taking the entire instance offline for all users. No public exploit is identified at time of analysis, though the upstream fix diff (PR #39354) reveals the root cause (unvalidated capture-group index in FindRenderizableReferenceRegexp). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Gitea instances up to and including 1.27.3 can be crashed by a repository administrator who configures an external issue tracker link format whose regular expression uses alternation with separate capture groups; the resulting invalid slice index triggers a Go runtime panic that terminates the Gitea process, and because rendering is triggered on later page views (for example a README containing matching text), the crash hits every user of the instance, not just the configurator. Exploitation requires an actor able to edit a repository's external issue tracker settings - on instances that permit self-service repository creation this effectively means any authenticated user on their own repository - so the practical barrier is configuration privilege rather than anonymity. Independent signals are moderate and partly conflicting: EPSS is only 0.16% (4th percentile), CISA SSVC rates exploitation as 'none' with partial technical impact, no CISA KEV listing or public exploit code has been identified at time of analysis, and a vendor fix ships in Gitea 28.0.0.
RemediationAI
Upgrade to Gitea 28.0.0, which is the vendor-released patch containing the fix from PR 39354 and described in the advisory at https://github.com/go-gitea/gitea/security/advisories/GHSA-mw6q-qj47-9g5q and the release announcement at https://blog.gitea.com/release-of-28.0.0/. If the upgrade cannot be applied immediately, reduce exposure by restricting who can create repositories and edit repository settings (for example disable self-service repository creation or require admin approval), since the attacker needs write access to a repository's external issue tracker configuration; this trade-off limits normal user onboarding and delegated repository management. As a narrower compensating control, administrators can audit existing repositories and remove or disable the external issue tracker unit on any repo whose link format uses a regex with alternation and multiple capture groups - disabling the unit breaks links to the external tracker for those repositories but eliminates the render-time panic path. Note that the patched code renames the render meta key from 'format' to 'externalTrackerLinkFormat' and introduces 'internalTrackerEnabled', so any custom templates or themes that reference the old 'format' meta should be reviewed after upgrading.
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
The flaw lives in Gitea's issue-reference markup pipeline, specifically modules/references/references.go and modules/markup/html_issue.go, which convert text such as '#123' or custom external-tracker patterns into links while rendering Markdown and other markup. Gitea stores the external issue tracker's URL/pattern in repository unit config and compiles it as a Go regexp; when a Go regexp contains alternation with multiple capture groups (for example (\d+):|TEST-(\d+)), only the group that actually participated in a given match has valid start/end offsets in the match slice - non-participating groups are reported as -1. The vulnerable code assumed the first capture group (match[2]) always matched and used those offsets directly to slice the content string, so an unmatched group produced a negative slice index and a runtime panic; the upstream fix (PR 39354) instead scans the capture-group pairs from index 2 upward and selects the first group whose start offset is non-negative, returning nil when none participated. This is tracked as CWE-125 (out-of-bounds read) because the panic originates from an out-of-range slice access, and the same commit renames the render meta key 'format' to 'externalTrackerLinkFormat' and adds an 'internalTrackerEnabled' meta so that internal and external tracker link handling are distinguished. Note that the input CVSS vector rates this PR:N, but the authoritative assessment rates PR:L, since the attacker must control repository external-tracker configuration; the scope is changed (S:C) because the panic terminates the shared server process and affects other users' availability.
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:N/UI:N/S:U/C:N/I:N/A:H
Configuring a repo's external tracker requires an authenticated low-privilege user (PR:L), and the panic kills the whole process affecting all users beyond the attacker's repo (S:C); availability-only impact (A:H).
Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).
CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
Lifecycle Timeline
3DescriptionCVE.org
A repository's external issue tracker regular expression containing alternating capture groups could produce invalid slice indexes when Gitea rendered issue references, causing a runtime panic that terminated the Gitea process. A user who can edit a repository's external issue tracker settings could make any later rendering of matching content, such as viewing a README, crash the instance for all users.
Technical POC Analysis
The flaw is an out-of-bounds read (CWE-125) that becomes an uncaught exception (CWE-248, per the advisory's dual weakness listing).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Gitea versions through 1.27.3 contain a high-severity availability flaw that can cause a full instance outage when crafted external issue tracker settings are rendered. Because the crash affects all users of the affected instance, development and collaboration services may become unavailable until the process is restarted. No vendor-released patch identified at time of analysis, and no public exploit identified at time of analysis, so leadership should prioritize inventory and privilege reduction.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict external issue tracker configuration to trusted administrators; disable self-service repository creation where feasible; review and sanitize existing external issue tracker link-format regular expressions; monitor Gitea processes for unexpected termination and configure automatic restart; and apply the vendor patch once released.
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
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
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
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
An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita
EUVD-2026-93921
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB