Skip to main content

Gitea EUVDEUVD-2026-103992

| CVE-2026-97204 LOW
Incorrect Authorization (CWE-863)
2026-10-18 Gitea
3.1
CVSS 3.1 · Vendor: Gitea
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with write access to repo issues
  2. Exploit
    Identify org sharing repository's numeric ID
  3. Execution
    Send label-delete request exploiting ID overlap
  4. Impact
    Target organization's labels deleted

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Two concrete prerequisites must both hold: (1) the attacker must be an authenticated Gitea user with write access to the issues of some repository (PR:L), and (2) there must exist an organization whose numeric ID equals that repository's numeric ID - the ID sequences for repositories and organizations overlap, but a usable collision is coincidental and cannot be freely chosen by the attacker, which is the core limiting factor and the basis for AC:H. Impact is limited to deletion of that organization's issue labels (integrity only); no confidentiality or availability of other data is affected. Only Gitea instances at or below version 28.1.0 are vulnerable; fixed in 28.2.0.

Impact

All available signals converge on this being a genuinely LOW priority. The supplied CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N yields a 3.1 (Low) score driven by integrity-only impact (I:L), required low privileges (PR:L) and high attack complexity (AC:H). EPSS reinforces this at 0.15% (4th percentile), and CISA's SSVC decision framework independently agrees: Exploitation=none, Automatable=no, Technical Impact=partial. There is no CISA KEV listing and no public exploit identified at time of analysis. CWE-863 (Incorrect Authorization) matches the description - this is a cross-tenant authorization flaw, not an authentication bypass. The AC:H rating is well-justified: exploitation depends on a coincidental collision where an organization's numeric ID equals the attacker's repository ID, which the attacker cannot freely engineer. No signals conflict; the only data-quality concern is the 'Authentication Bypass' tag, which mischaracterizes an authorization/IDOR-class issue. Bottom line: a real but low-severity bug, appropriately patched, not warranting emergency action.

Exploit ScenarioDerived

A user holding write access to a repository's issues notices that some organization happens to share the same numeric ID as their repository. When they invoke the label-deletion API/endpoint, the flawed ID comparison matches the repo ID against the organization's label owner ID and deletes that organization's labels instead of (or in addition to) their own. No public exploit code exists, and the network-reachable but high-complexity nature (AV:N/AC:H) means success hinges on the rare ID overlap.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

Incorrect authorization in Gitea's label-deletion logic lets an authenticated user with write access to a repository's issues delete issue labels belonging to an unrelated organization whose numeric ID happens to match that repository's ID. Exploitation requires the coincidental ID collision between a repository and an organization, cannot be chosen by the attacker, and yields only limited integrity impact (deleted labels) with no confidentiality or availability loss; Gitea instances through 28.1.0 are affected and 28.2.0 fixes the flaw. Risk is low: EPSS is 0.15% (4th percentile), SSVC marks exploitation as none and non-automatable, and no public exploit code was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade Gitea to 28.2.0 or later, which splits label deletion into owner-scoped DeleteRepoLabel and DeleteOrgLabel operations so a repository request can no longer match an organization label (release notes at https://blog.gitea.com/release-of-28.2.0/ and advisory GHSA-fxq4-gr55-7x5g). If an immediate upgrade is not possible, reduce exposure by auditing which teams and collaborators hold write access to repository issues, since that permission is the sole prerequisite on the attacker side; restrict write/issue-write to trusted teams and remove label-management permissions from untrusted roles via repository and organization unit settings, accepting that this reduces normal triage workflow for those users. Operators can also enumerate repositories whose numeric ID equals an existing organization ID and monitor or temporarily freeze label editing there, though this is manual, coverage is incomplete as IDs change, and it does not address the underlying authorization flaw - upgrading remains the only complete fix. No further disclosure or exploitation has been reported, so priority can follow standard patch cadence rather than emergency change control.

Affected VersionsENISA

Gitea 0 ≤28.1.0

Affected Packages

euvd gitea no fix

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 stores issue labels for both repositories and organizations in a single Label table, distinguished by whether the row carries a repo_id or an org_id. The vulnerable DeleteLabel(ctx, id, labelID) helper loaded the label, then compared the caller-supplied owner ID against l.OrgID for organization labels and l.RepoID for repository labels using the same parameter; because repository IDs and organization IDs come from separate auto-increment sequences that overlap numerically, a repository-scoped request could satisfy the organization-ownership check. This is CWE-863 (Incorrect Authorization): the ownership comparison was performed in application code against a mismatched identifier namespace instead of being enforced as a scoped database predicate. The upstream fix (PR #39743) replaces the shared helper with DeleteRepoLabel and DeleteOrgLabel, each issuing a delete constrained by both the label ID and the correct owner column (repo_id with org_id = 0, or org_id with repo_id = 0), and the affected API and web handlers were repointed to the ownership-specific functions. Regression tests were added to confirm cross-owner deletions are no-ops.

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

Vendor (Gitea) PRIMARY 3.1 LOW
AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.1 LOW

Web-reachable (AV:N) requiring authenticated issue-write access (PR:L) and a rare repo/org numeric-ID collision the attacker cannot control (AC:H); only label deletion, so I:L with C:N/A:N.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Gitea).

CVSS VectorVendor: Gitea

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

2
CVSS changed
Oct 19, 2026 - 21:24 NVD
3.1 (None) 3.1 (LOW)
CVE Published
Oct 18, 2026 - 19:00 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Deleting a label compared the ID of the repository in the request against the organization ID of organization labels, and the two ID sequences overlap. A user with write access to the issues of a repository could therefore delete the labels of an organization that has the same numeric ID as that repository. Labels are now deleted only within their own repository or organization.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular self-hosted Git forge, common in dev/CI environments but not ubiquitous
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Gitea

View all
CVE-2026-60004 CRITICAL POC
9.8

Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi

CVE-2026-27771 HIGH POC
8.2 Jul 03

Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r

CVE-2022-30781 HIGH POC
7.5 May 16

Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp

CVE-2020-14144 HIGH POC
7.2 Oct 16

The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir

CVE-2024-6886 CRITICAL POC
10.0 Aug 06

Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea

CVE-2026-72867 CRITICAL POC
9.9 Aug 10

Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us

CVE-2026-20896 CRITICAL POC
9.8 Jul 03

Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any

CVE-2026-59774 CRITICAL POC
9.8

Path traversal in Gitea's Org-mode (`.org`) markup renderer allows an attacker who can get Org-mode content rendered by

CVE-2026-58053 CRITICAL POC
9.4 Jun 28

Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec

CVE-2019-11229 HIGH POC
8.8 Apr 15

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

CVE-2026-57894 HIGH POC
8.5 Jul 21

Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica

CVE-2026-24791 HIGH POC
8.1 Jun 17

Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy