Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain contributor/PR push access
-
DeliveryCraft commit with duplicate tree entries (benign + malicious)
-
ExploitOpen pull request showing benign web diff
-
ExecutionReviewer approves based on deceptive web view
-
PersistCI/checkout resolves to malicious last entry
-
ImpactAttacker code executes in build/CI pipeline
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incorrectly specified target
|
| Exploitation Conditions | Requires a Gitea instance running an affected version (≤1.27.3, pre-28.0.0) that accepts incoming pushes of malformed Git objects - the fix enables |
| Impact | Signals conflict on priority. The NVD CVSS 3.1 base score is 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N), which paints a critical, network-reachable, unauthenticated, no-interaction picture. However, the description makes clear this is a code-review/content-confusion flaw: an attacker must be a contributor able to open a pull request, so PR:N is questionable - realistically some account/push access is needed (verify against repo settings; public instances allowing open registration and fork PRs narrow the gap). EPSS is very low at 0.16% (4th percentile) and SSVC records Exploitation: none, so there is no evidence of active or imminent mass exploitation; it is NOT in CISA KEV. Counterbalancing this, SSVC rates Technical Impact: total and Automatable: yes, and the impact class is serious - a silent code-review bypass that lets CI, git checkout, and release archives execute attacker-controlled content while reviewers see benign diffs (a supply-chain / CI-poisoning primitive). Net assessment: this is a real, high-value integrity issue for organizations that run Gitea with CI (Gitea Actions) and rely on web-diff review, but it is a targeted abuse-of-workflow bug rather than a spray-and-pray mass-exploitation vector - the high CVSS overstates ease relative to the low EPSS and the contributor-access precondition. Treat as a prompt patch priority for Gitea operators who accept external PRs and run CI, lower priority for closed internal instances. |
| Exploit ScenarioDerived | An attacker with contributor/PR access (e.g. a registered user forking a public repository) pushes a commit whose Git tree contains two entries with the same filename - a benign blob first and a malicious one (e.g. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Duplicate-name tree entries pushed to Gitea ≤1.27.3 are stored and served inconsistently: the web diff and file views resolve such a path to the first entry, while git checkout, Gitea Actions and generated release archives resolve it to the last, so a contributor can open a pull request that looks benign to reviewers but runs or delivers attacker-controlled content at the same commit. Exploitation requires the ability to push a branch or open a pull request (contributor access, or a public instance allowing registration and fork-based PRs) and is only consequential where a consumer resolves the commit differently - CI auto-running on the PR, a developer checking it out, or a release tarball being built; there is no confirmed active exploitation and no public exploit code identified at time of analysis, with EPSS at 0.16% (4th percentile). Critically, upgrading fixes only new incoming objects - existing repositories are not rescanned, so a malicious tree already stored stays exploitable after the patch.
RemediationAI
Upgrade to Gitea 28.0.0 (vendor-released patch: 28.0.0) per https://blog.gitea.com/release-of-28.0.0/ and https://github.com/go-gitea/gitea/releases/tag/v28.0.0, which together with PR #39472 enables transfer.fsckObjects=true so duplicate-entry trees are rejected at push and fetch time. Because the advisory explicitly states that objects already stored in existing repositories are not rescanned, plan a one-time audit of existing repositories: run git fsck --connectivity-only (or a full git fsck) against each bare repository before restoring normal contributor workflows, and quarantine or rewrite any repository that reports duplicateEntries, since such a history remains exploitable even on a patched instance - a full git fsck on large repositories is I/O-heavy and may surface pre-existing harmless warnings that the patch deliberately ignores (badTimezone, missingSpaceBeforeDate, zeroPaddedFilemode). Where an immediate upgrade is not possible, the strongest compensating controls are to disable open registration and fork-based merge requests so untrusted parties cannot push branches, require reviewers to review from a local clone or git log/git blame rather than Gitea's web diff, and disable or gate automatic Gitea Actions runs on pull_request events from untrusted contributors so attacker-controlled content is never auto-executed; each of these costs collaboration convenience and does not protect against an already-trusted malicious contributor. Refer to GHSA-6pv5-8rp7-8c75 for the authoritative vendor guidance.
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
Git tree objects are byte streams of <mode> <name>\0<20-byte-object-id> entries, and Git's own consistency checks (git fsck) reject a tree containing two entries with the same name as the duplicateEntries error; standard plumbing such as git mktree and index writes refuse to construct one, so such trees must be hand-assembled via git hash-object -t tree -w --stdin --literally, as demonstrated in the upstream regression test modules/git/receive_fsck_test.go. Gitea resolved these ambiguous paths differently across code paths - the go-git-backed web rendering (file tree, diff views) took the first match while native Git consumers (git checkout, the Actions runner's workspace checkout, archive/release generation) took the last - a textbook CWE-706 (Use of Incorrectly-Resolved Name or Reference) inconsistency. The upstream fix in PR #39472 sets transfer.fsckObjects=true in Gitea's synced Git config so malformed objects are rejected on push and fetch, while explicitly setting fsck.badTimezone, fsck.missingSpaceBeforeDate, fsck.zeroPaddedFilemode (and the fetch./receive. variants) to ignore to match Gitaly and avoid breaking legitimate historical repositories produced by old tools such as Grit and git-cvsimport. The same PR adds a reindexingStorage wrapper around go-git's filesystem storage to re-index packs Git wrote after go-git loaded its index (go-git issue #2439), eliminating a second source of object-resolution divergence.
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
Network-reachable and low-complexity, but opening a PR needs an account so PR:L not PR:N; integrity-centric review bypass with CI code execution yields C:H/I:H, A:N.
Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).
CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
Lifecycle Timeline
3DescriptionCVE.org
Gitea accepted pushed Git trees containing two entries with the same name, which Git's own consistency checks reject. Gitea's web views resolved such a path to the first entry, while git checkout, Gitea Actions, and release archives use the last. A contributor could open a pull request whose diff and file views show benign content while CI and checkouts at the same commit use different, attacker-controlled content. Incoming objects are now checked for consistency; objects already stored in existing repositories are not rescanned.
Technical POC Analysis
CWE-706: Use of Incorrectly-Resolved Name or Reference.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Gitea deployments running version 1.27.3 or earlier are affected by a critical repository-integrity vulnerability that can allow a contributor to submit a pull request appearing benign in Gitea’s web interface while delivering attacker-controlled content to CI pipelines, developer checkouts, or release archives. This creates a potential supply-chain risk for organizations that rely on Gitea for source control, code review, and automated builds, particularly those accepting external pull requests or auto-running workflows. No public exploit identified at time of analysis, but no vendor-released patch identified at time of analysis, and existing repositories are not remediated by upgrades alone.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict push and pull-request rights to trusted contributors; disable public registration and fork-based pull requests; require maintainer approval before CI runs on any pull request; manually inspect commit trees and release archives without executing content; audit existing repositories for duplicate-name tree entries and quarantine or rewrite suspicious objects; avoid relying solely on Gitea web diff or release archives until a vendor fix is available.
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-93913
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB