Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/authenticate Gitea account
-
DeliveryFork target repository with Actions enabled
-
ExploitOpen pull request with crafted large static matrix workflow
-
ExecutionMatrix expands to full Cartesian product pre-approval
-
ImpactMemory exhausted, Gitea process terminated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) Gitea Actions enabled on the target repository and (2) an account permitted to open a pull request from a fork against that repository; the attacker submits a workflow file containing a static strategy.matrix that expands to a very large number of job combinations. The critical enabling flaw is ordering: the Cartesian-product expansion occurred when creating the run, BEFORE the fork pull-request approval gate, so a maintainer never needs to approve the malicious run. No self-hosted runner is required. Limiting factors: exploitation needs the ability to open fork PRs (an authenticated user on most instances; effectively low-friction on instances with open registration), Actions must be enabled, and only instances running Gitea ≤1.27.3 are affected - version 28.0.0 rejects static matrices above 256 combinations before expansion. |
| Impact | This is a moderate, not top-tier, priority. The official CVSS 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) rates it high purely on availability impact, but multiple signals temper the urgency. EPSS is 0.16% (4th percentile), SSVC lists Exploitation as 'none' and Technical Impact as only 'partial', and it is NOT on CISA KEV - so there is no public exploit identified at time of analysis and no evidence of active exploitation. The one aggravating signal is SSVC Automatable=yes, meaning the trigger (submitting a crafted workflow file) is trivially scriptable once an attacker has PR access. There is a notable tension in the data: the CVSS vector claims PR:N (unauthenticated), yet the description explicitly requires 'a user who can open a pull request from a fork,' which on most Gitea deployments requires an authenticated account - so the true privilege requirement is closer to PR:L and the real-world score is likely ~6.5, not 7.5. Net: a credible self-inflicted/insider or open-registration-instance DoS risk worth patching promptly, but not an emergency given low EPSS, no KEV, and partial (availability-only) impact. |
| Exploit ScenarioDerived | On a Gitea instance with Actions enabled and open or low-friction registration, an attacker creates an account, forks a target repository, and opens a pull request containing a tiny workflow file whose static strategy.matrix is defined to expand to an enormous Cartesian product (e.g., several dimensions multiplying into millions of jobs). Because matrix expansion happens when the run is created - before the fork-PR approval gate - Gitea attempts to materialize all job combinations, exhausting server memory and potentially killing the process. No self-hosted runner is required, and no public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Denial of service in Gitea affects instances running 1.27.3 and earlier that have Actions enabled: a user who can open a pull request from a fork can submit a small workflow file whose static strategy.matrix expands to an enormous number of job combinations, exhausting server memory and potentially killing the Gitea process. Because the Cartesian-product expansion occurs at run-creation time, before the fork pull-request approval gate is enforced, no maintainer approval and no self-hosted runner are required to trigger the resource consumption. Gitea 28.0.0 rejects static matrices exceeding 256 combinations before expansion; EPSS is 0.16% (4th percentile), there is no CISA KEV entry, and no public exploit code has been identified at time of analysis. This is a moderate, not top-tier, priority.
RemediationAI
Vendor-released patch: upgrade to Gitea 28.0.0, where static matrices above 256 combinations are rejected before expansion (PR #39295; advisory https://github.com/go-gitea/gitea/security/advisories/GHSA-p3rv-cr5f-9gjh; release notes https://github.com/go-gitea/gitea/releases/tag/v28.0.0). No backport for 1.27.x is identified in the supplied data, so instances that cannot move to 28.0.0 need compensating controls: restrict who can open fork pull requests (disable open registration, require organization membership, or disable forking on sensitive repositories) - effective but it curtails normal contribution workflows; disable Gitea Actions on repositories that accept untrusted fork PRs - removes the attack surface entirely but also removes CI functionality; and bound the blast radius of a memory blowup by setting a systemd MemoryMax or container memory limit so the OOM killer terminates only the Gitea service - the trade-off is that an exploited instance will be killed and restart, producing service outages rather than a full host compromise. For most deployments the upgrade to 28.0.0 is the least disruptive and most complete fix.
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 vulnerability is a CWE-400 uncontrolled resource consumption flaw in Gitea's Actions workflow scheduling logic. When a workflow is parsed, a static strategy.matrix declaration is expanded into its full Cartesian product to generate the job set for a new run. Gitea ≤1.27.3 performed that expansion without any combination-count ceiling, so a compact YAML file with a handful of matrix keys and values can produce a combinatorial explosion of job entries that are materialized in server memory. The ordering failure is the core issue: expansion happens during run creation, which precedes the fork pull-request approval gate, so the resource-intensive work is done before any maintainer reviews or approves the run, and because the blowup occurs in the Gitea server process rather than on a runner, no runner registration is needed to weaponize it. The fix in 28.0.0 (PR #39295, GHSA-p3rv-cr5f-9gjh) adds a hard limit that rejects static matrices above 256 combinations prior to expansion. Note a scoring discrepancy in the source data: the supplied CVSS vector uses PR:N (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5), whereas the independent assessment rates it PR:L, reflecting that the attacker must hold an account able to open a fork pull request against a repository with Actions enabled; the practical exposure is therefore lower than the nominal 7.5 on instances where fork PR creation is restricted.
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
Triggering requires an account able to open a fork pull request, so PR:L (not PR:N); network vector, low complexity, no interaction, and availability-only impact from process termination.
Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).
CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
Lifecycle Timeline
3DescriptionCVE.org
Gitea expanded a workflow's static strategy.matrix into its full Cartesian product without a size limit when creating a run, before the fork pull request approval gate applied. A user who can open a pull request from a fork could submit a small workflow file whose matrix expands to a very large number of jobs, consuming server memory and potentially terminating the Gitea process. No runner is required. Static matrices above 256 combinations are now rejected before expansion.
Technical POC Analysis
CWE-400 (Uncontrolled Resource Consumption).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Gitea instances running version 1.27.3 or earlier with Actions enabled are exposed to a high-severity denial-of-service condition that can crash the service and disrupt CI/CD operations. The issue is not known to be actively exploited, but a user able to open a pull request from a fork can trigger excessive resource consumption without maintainer approval. Engineering teams relying on Gitea Actions should prioritize inventory and mitigation because availability loss could halt development workflows.
Disable Gitea Actions on affected instances if not business-critical; restrict fork pull requests and workflow execution to trusted users; enforce memory/process limits and monitoring; upgrade to Gitea 28.0.0 or later once validated as vendor-fixed.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-93924
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB