Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain account with draft-release permission
-
ExploitCall draft release creation API
-
ExecutionServer queries attachments against release ID 0
-
ImpactHarvest cross-repo attachment metadata
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold an authenticated account with permission to create a draft release in at least one repository on the target Gitea instance (the create-draft-release API path is the trigger). Exploitation is limited to that authenticated, write-capable context and to default versions in the 1.22.0 through 28.1.0 range; instances on 28.2.0 or later are not affected. The leak is bounded to attachment METADATA only (file name, UUID, upload time, size, download count) of issue/comment attachments and abandoned uploads - not the attachment file contents themselves - so impact is confidentiality-limited and does not expose repository code or write/delete capability. |
| Impact | This is a genuine but low-severity information-disclosure issue, and the multiple signals are consistent rather than conflicting. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, base 4.3) describes a remotely reachable, low-complexity flaw that requires an authenticated account (PR:L) and leaks only limited confidentiality (C:L) with no integrity or availability impact - matching the CWE-200 classification and the description precisely. The EPSS score of 0.16% (4th percentile) and CISA SSVC decision (Exploitation: none, Automatable: no, Technical Impact: partial) reinforce low real-world urgency, and the vulnerability is NOT in CISA KEV. No public exploit was identified; the only source code available is the vendor patch (PR #39743/#39752), which is a fix, not a weaponized POC. The net picture is a real but minor priority: it exposes attachment metadata (not file contents) to users who already hold write-level access on the instance, so it is a lateral metadata-leak concern rather than a critical breach. One note for verification: the patch bundle in PR #39743 also contains an unrelated label-deletion authorization refactor (DeleteLabel split into DeleteRepoLabel/DeleteOrgLabel); the attachment leak described by this CVE corresponds specifically to the models/repo/release.go change guarding against releases with ID 0. |
| Exploit ScenarioDerived | An authenticated user with permission to create a draft release in any single repository on a Gitea instance calls the draft-release creation API. Because the server built the attachments query from a release object whose ID was 0, the response matched every attachment not linked to a release, returning the metadata (file name, UUID, upload time, size, download count) of issue and comment attachments from private repositories the user cannot read, plus abandoned uploads. No public exploit code is known, but the attack requires only a normal authenticated API call against the default configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Information disclosure in Gitea 1.22.0 through 28.1.0 allows an authenticated low-privileged user who can create a draft release to obtain attachment metadata from repositories they cannot read, as well as metadata for abandoned uploads. The draft-release API path builds an assets list from an unsaved release whose ID is 0, causing the attachment lookup to return file name, UUID, upload time, size, and download count, but not attachment contents. CISA SSVC reports exploitation: none, no public exploit was identified at time of analysis, and EPSS is 0.16% (4th percentile).
RemediationAI
Vendor-released patch: upgrade Gitea to 28.2.0 or later. Apply the official release from https://github.com/go-gitea/gitea/releases/tag/v28.2.0 and review advisory GHSA-8j56-f865-gqq2; the upstream fixes are in PR 39743 and PR 39752. If immediate upgrade is not possible, restrict permission to create draft releases to trusted maintainers and audit API tokens with repository write scope, recognizing that this reduces exposure but does not fix the underlying query for users who retain release-creation permission. Monitor API logs for draft-release creation by low-privileged accounts. A reverse-proxy rule can block the draft-release API path for untrusted users as a temporary measure, but it will break legitimate release automation and must be scoped carefully.
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
Gitea is a self-hosted Git service written in Go, and releases can have attachments that share a data model with issue and comment attachments. The vulnerable code in models/repo/release.go (GetReleaseAttachments) constructed a SQL IN clause from the IDs of the supplied Release objects. When the API created a draft release, the Release object had not yet been persisted and therefore had ID 0; including 0 in the IN clause caused the query to match every attachment not linked to a real release, including issue/comment attachments and abandoned uploads. This is CWE-200 exposure of sensitive information because the query did not exclude unsaved releases or constrain results to the authenticated user's readable repositories. The provided PR diff shows the fix: releases with ID 0 are skipped, and if no valid IDs remain the function returns without querying. The same PR also separates label deletion into DeleteRepoLabel and DeleteOrgLabel with explicit owner conditions, which is adjacent authorization hardening rather than the attachment metadata leak itself.
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:L/UI:N/S:U/C:L/I:N/A:N
Remote authenticated API call (AV:N, AC:L, PR:L) needs no user interaction; it leaks only limited cross-repo metadata, so C:L with I:N/A:N and unchanged scope.
Primary rating from Vendor (Gitea).
CVSS VectorVendor: Gitea
Lifecycle Timeline
2DescriptionCVE.org
Creating a draft release through the API returned an assets list that was built from a release without an ID, which matched every attachment that was not linked to a release. A user who could create a draft release in a repository therefore received the metadata (file name, UUID, upload time, size and download count) of issue and comment attachments of repositories they could not read, and of abandoned uploads.
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
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-103989
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB