Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Gitea with repository write access
-
DeliveryCreate release with path-traversal tag or asset name
-
ExploitWait for or socially trigger a dump/migration of the repository
-
Executionfilepath.Join() in dump.go processes malicious name without sanitization
-
ImpactFiles written outside the intended dump output directory
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two specific conditions must be met: first, the attacker must possess authenticated write access to a Gitea repository in order to create a release with a malicious tag name or asset name containing path traversal sequences; second, a dump or migration operation must be separately triggered against that repository - this is not part of normal repository browsing or API interaction and typically requires an administrator or automation to invoke it. The CVSS PR:N assignment is inconsistent with the authentication requirement for creating Gitea releases (contributor-level write access is required at minimum); this discrepancy is unresolved. Exploitation is strictly scoped to the dump and migration workflow - the standard repository hosting, code review, issue tracking, and CI/CD features are unaffected. The filesystem impact is further constrained to paths accessible under the OS user running the Gitea dump process. |
| Impact | The NVD-assigned CVSS 5.3 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) classifies this as a moderate-severity, network-accessible, unauthenticated issue, but the PR:N and UI:N assignments conflict with the practical exploitation requirements: creating releases in Gitea requires repository write access (authenticated), and a dump operation must be separately triggered by another actor - this discrepancy is unresolved and should be verified with the vendor. EPSS at 0.18% (8th percentile) indicates very low observed exploitation probability, consistent with SSVC Exploitation: none and Technical Impact: partial. SSVC flags Automatable: yes, meaning that if malicious repositories exist on a target instance, a scanner could probe dump endpoints at scale; however, real-world risk is constrained to organizations actively using Gitea's dump or migration workflows. The vulnerability does not affect normal repository browsing, code review, or CI/CD operations. Overall, this warrants routine patching rather than emergency response - EPSS, KEV absence, and SSVC all align on low near-term exploitation risk. |
| Exploit ScenarioDerived | An authenticated attacker with repository write access creates a Gitea release whose tag name or asset name contains a path traversal sequence such as '../../var/spool/cron/attacker'. When an administrator or automated backup process subsequently triggers a repository dump against that repository, Gitea's dump.go constructs the output path using the malicious string, potentially writing dump artifacts to an attacker-chosen location on the server filesystem. No public proof-of-concept has been identified at the time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 22, 2026
Path traversal in Gitea's release asset dump functionality (all versions before 1.25.5) allows attackers who can create releases with malicious tag or asset names to influence where dump output files are written on the server filesystem. The root cause - confirmed by reviewed PR diffs - is that dump.go passed user-controlled release.TagName and asset.Name directly into filepath.Join() without sanitization. No public exploit or active exploitation has been identified; EPSS is 0.18% (8th percentile) and SSVC confirms exploitation status as none.
RemediationAI
Upgrade to Gitea version 1.25.5 or later; this is a vendor-released patch confirmed by the official release tag and blog post. The fix is implemented via PRs #36799 (https://github.com/go-gitea/gitea/pull/36799) and #36839 (https://github.com/go-gitea/gitea/pull/36839), both of which replace user-controlled names with UUID strings in dump path construction. For organizations unable to patch immediately, restricting or disabling access to Gitea's repository dump and migration endpoints is the most targeted compensating control, though this will impact backup and repository transfer workflows. Additionally, auditing existing repositories for release tag names and asset names containing path traversal patterns (e.g., sequences with '../' or absolute path prefixes) can identify prior exposure before patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerable code resides in services/migrations/dump.go, where Gitea constructs filesystem paths for dumped release assets using filepath.Join('release_assets', release.TagName) and filepath.Join(attachDir, asset.Name). Because TagName and asset.Name are user-supplied strings never validated for path traversal sequences such as '../', a specially crafted name can redirect dump output outside the intended directory. The affected product is Gitea Open Source Git Server (CPE: cpe:2.3:a:gitea:gitea_open_source_git_server:*:*:*:*:*:*:*:*) in all versions from 0 up to 1.25.5. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory - Path Traversal), a classic failure to sanitize user input before using it in filesystem operations. The upstream fix, confirmed via PRs #36799 and #36839, replaces both TagName and asset.Name with uuid.New().String() values, severing the link between user-controlled input and file paths entirely.
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:L/I:N/A:N
Creating releases requires authenticated write access (PR:L); a separate actor must trigger the dump (UI:R); path traversal affects both file write destination (I:L) and potential exposure of adjacent content (C:L).
Primary rating from Vendor (Gitea).
CVSS VectorVendor: Gitea
DescriptionCVE.org
Gitea versions before 1.25.5 use release tag names and asset names as filesystem path components when dumping release assets, allowing specially crafted names to affect dump output paths.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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-41641
GHSA-7jvx-g65v-r899
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB