Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/authenticate to Gitea instance
-
DeliveryCreate template repo with symlinked path
-
ExploitInvoke generate-from-template
-
ExecutionPath resolution follows symlink
-
PersistRead or write file outside root
-
ImpactDisclose secrets or tamper data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
|
| Exploitation Conditions | Exploitation requires the Gitea template repository generation feature to be used: the attacker must be able to supply or control the contents of a template repository (planting a symlinked directory or non-regular file), and then invoke repository generation from that template. This normally requires an authenticated Gitea account with permission to create/own a template repository and to generate a new repository from it; on instances with open registration that barrier is low, whereas instances that disable self-registration or restrict repository creation to trusted users substantially limit exploitation. It affects all versions before 1.25.5 on any platform; note the official vector states PR:N but the feature mechanics realistically imply an authenticated, template-controlling actor, so treat PR:N with caution. |
| Impact | The signals are mixed and should be read together rather than off the raw 9.1. The CVSS vector (AV:N/AC:L/PR:N/UI:N) claims fully remote, unauthenticated, low-complexity exploitation, and SSVC marks the issue automatable with total technical impact - pointing to a serious flaw. However, EPSS is very low (0.17%, 7th percentile) and SSVC exploitation is 'none', with no KEV listing and no public exploit identified, indicating no observed real-world attacks yet. There is also tension between the PR:N in the official vector and the actual mechanics: template repository generation is a feature invoked by a logged-in user creating a repository from a template, and the attack requires controlling the contents of a template repo, which realistically implies at least an authenticated account and the ability to craft or influence a template - so the effective privilege requirement is likely PR:L rather than PR:N. The tags label this 'Information Disclosure', but the code (WriteRegularPathFile) and CVSS I:H show it is both read AND write, making integrity impact real, not just disclosure. Net assessment: a genuinely high-severity, patch-worthy bug for any multi-user or public-registration Gitea instance, but current exploitation risk is low and likely to be targeted rather than mass-exploited. |
| Exploit ScenarioDerived | An attacker with an account on a multi-user Gitea instance creates a template repository whose tree contains a symlinked directory or file pointing outside the repository root, then triggers the 'generate repository from template' operation. During generation Gitea follows the symlink and either reads a sensitive server-side file into the new repository (disclosure) or writes attacker-controlled content to an unintended location (integrity). No public exploit code is identified at time of analysis, but the low attack complexity and automatable nature make weaponization plausible. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 22, 2026
Arbitrary file read and write in Gitea before 1.25.5 arises when the template repository generation feature resolves paths through symlinks or other non-regular file types instead of restricting itself to regular files within the target root. An attacker who controls a template repository can plant symlinked or special paths so that generation reads sensitive files or writes attacker-controlled data outside the intended boundary, yielding high confidentiality and integrity impact (CVSS 9.1). There is no public exploit identified at time of analysis, the EPSS probability is low (0.17%, 7th percentile), and CISA SSVC records exploitation as 'none', but the flaw is automatable with total technical impact.
RemediationAI
Vendor-released patch: upgrade Gitea to version 1.25.5 or later, which contains the fixes from PRs https://github.com/go-gitea/gitea/pull/36734 and https://github.com/go-gitea/gitea/pull/36746 (see release https://github.com/go-gitea/gitea/releases/tag/v1.25.5 and https://blog.gitea.com/release-of-1.25.5/). Until you can patch, reduce exposure by disabling or restricting the template repository feature and by limiting who can create template repositories and generate repositories from them - restrict repository creation to trusted users and disable open self-registration so untrusted accounts cannot supply malicious templates (trade-off: blocks legitimate self-service onboarding and template-based repo creation). Additionally, ensure the Gitea service account runs with least privilege on the filesystem so that any read/write redirected through a symlink is confined and cannot reach sensitive host files (trade-off: none significant, and it is good hardening regardless).
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 vulnerability is a CWE-59 link-following / improper link resolution issue in Gitea's Go codebase, specifically in the path-handling helpers used when Gitea instantiates a new repository from a template repository. The pre-fix logic used os.Lstat only to test whether a final target was a regular file and did not validate that every intermediate path component was a genuine regular directory, so a symlinked directory or symlinked file placed inside the template tree could redirect a read or write to a location the operator did not intend. The upstream fix (PRs 36734 and 36746) replaces the old IsRegularFile check with new ReadRegularPathFile and WriteRegularPathFile helpers that walk each sub-path element, Lstat every component, and reject the operation with ErrNotRegularPathFile if any parent is not a regular directory or the leaf is not a regular file - closing both the symlinked-directory and symlinked-file traversal paths, as the added unit tests (link-dir/real-file, real-dir/link-file, link-dir/link-file) demonstrate. The affected component is the Gitea open-source Git server (CPE cpe:2.3:a:gitea:gitea_open_source_git_server).
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:H/I:H/A:N
Remote and low-complexity, but requires an authenticated user who controls a template repository to trigger generation, so PR:L; symlink abuse yields file read and write (C:H/I:H) with no availability impact.
Primary rating from Vendor (Gitea).
CVSS VectorVendor: Gitea
Lifecycle Timeline
2DescriptionCVE.org
Gitea versions before 1.25.5 mishandle path resolution during template repository generation, allowing template processing to read or write through symlinked or otherwise non-regular paths.
Executive ViewAI
Gitea before version 1.25.5 contains a critical vulnerability enabling arbitrary read and write of files on affected systems through the template repository feature, potentially exposing sensitive data and enabling malicious code injection. Organizations relying on Gitea's template capabilities face immediate risks to data confidentiality and system integrity if running unpatched versions.
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-41624
GHSA-h697-89cp-24q8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB