Skip to main content

Gitea CVE-2026-105267

| EUVDEUVD-2026-94063 HIGH
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-10-06 88ee5874-cf24-4952-aea0-31affedb7ff2
8.1
CVSS 3.1 · Vendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as Code-write collaborator
  2. Exploit
    Send POST to /{owner}/{repo}/tags/delete for a release tag
  3. Execution
    Handler omits plain-tag check
  4. Impact
    Permanently delete release and attachments

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
Exploitation Conditions

Requires an authenticated repository collaborator who holds write access to the Code unit but does not have Releases write access (the exact privilege-boundary this bug crosses); exploitation is a single POST to /{owner}/{repo}/tags/delete against the release's tag on an unpatched instance (Gitea ≤28.0.0). Key limiting factors: the attacker must already be a trusted collaborator with Code write on the target repository (not an anonymous outsider), and releases whose tags are covered by Protected Tag rules remain safe - those rules still blocked the deletion, so protected-tag configuration meaningfully mitigates real-world impact.

Impact

This is a broken-access-control / improper authorization flaw (CWE-732) in Gitea's tag-deletion web route, which shared a handler with release deletion and failed to verify the target was a plain tag. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H, base 8.1) indicates network-reachable, low-complexity exploitation by a low-privileged authenticated user, with high integrity and availability impact and no confidentiality impact. The real-world signals argue against treating this as a top-tier emergency: EPSS is only 0.17% (6th percentile), it is NOT on CISA KEV, no public exploit code is referenced (the only 'source code evidence' is the vendor fix PR, not a weaponized POC), and SSVC scores Exploitation=none, Automatable=no, Technical Impact=partial. These signals are internally consistent - a high-CVSS integrity/availability issue that is nonetheless not actively exploited and not trivially automatable at scale, because it requires an attacker to already be a trusted collaborator with Code write access on the specific repository. Note one conflict worth flagging: the input Tags label this 'Information Disclosure', but the CVSS vector sets C:N and the impact is data destruction (releases and attachments), so the disclosure framing is incorrect - this is an integrity/availability issue. Net: a legitimate insider-privilege-escalation bug that platform operators with multi-collaborator repositories should patch, but not a mass-exploitation 'drop everything' priority.

Exploit ScenarioDerived

A repository collaborator who has been granted write access to the Code unit but deliberately NOT given Releases write access sends a crafted POST to /{owner}/{repo}/tags/delete targeting the tag of a published release. Because the shared handler did not confirm the target was a plain tag, the release and all of its attachments are permanently deleted, bypassing the intended Releases-permission boundary. No public exploit code is identified at time of analysis; the request is simple enough to issue manually against any unpatched instance where the attacker holds Code write.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 07, 2026

Broken access control in Gitea up to and including 28.0.0 allows an authenticated repository collaborator who holds write access to the Code unit (but not Releases write access) to permanently delete published releases and their attachments by sending a single POST to /{owner}/{repo}/tags/delete against the release's tag. The flaw is rated CVSS 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H per the assessed vector), reflecting high integrity and availability impact with no confidentiality loss, and exploitation requires the attacker to already be a trusted collaborator on the target repository rather than an anonymous outsider. There is no public exploit code identified at time of analysis, CISA KEV does not list it, SSVC rates exploitation as none and automatable as no, and EPSS is low at 0.17% (6th percentile).

RemediationAI

Apply the vendor-released patch: upgrade Gitea to 28.1.0 (https://github.com/go-gitea/gitea/releases/tag/v28.1.0; release notes at https://blog.gitea.com/release-of-28.1.0/), which introduces the missing 'isDelTag && !rel.IsTag' guard so the tag-deletion route rejects release targets with HTTP 409. Where upgrading is not immediately possible, configure Protected Tag rules that match the patterns of tags attached to releases - in the vulnerable code path these rules continued to block the deletion, making them an effective compensating control - but note the trade-off that protection must be configured per tag pattern and any release tag left unprotected remains deletable by a Code-write collaborator. Additionally, review repository collaborator permissions and remove or downgrade Code write access for any user who should not be able to mutate tags, since the flaw is only reachable by an authenticated collaborator with Code write (PR:L); this reduces the attack surface but constrains legitimate contributor workflows. Because SSVC rates this as non-automatable with no observed exploitation and EPSS is only 0.17%, prioritization can follow normal patching cadence for externally reachable instances, with faster action on instances that have many low-trust collaborators or unpushed release history.

Affected VersionsENISA

Gitea 0 ≤28.0.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

This is a CWE-732 (Incorrect Permission Assignment for Critical Resource) flaw in Gitea's web routing and handler-sharing design. The web route for deleting tags (POST /{owner}/{repo}/tags/delete) enforces only write access to the repository's Code unit, yet it dispatches to the same handler used for release deletion (deleteReleaseOrTag in routers/web/repo/release.go). Because that shared handler did not verify that the requested target was actually a plain tag rather than a release, a user whose only privilege was Code write could reach release-deletion logic that should have required Releases write access, resulting in permanent removal of published releases and their attachments. The upstream fix (referenced by pull requests 39501 and 39507, and shipped in the v28.1.0 release) adds an explicit type guard - effectively 'if isDelTag && !rel.IsTag' the request is rejected with HTTP 409 Conflict - so the tag-only deletion route can no longer act on a release object. Notable mitigating interaction: Protected Tag rules covering the release's tag still blocked the deletion even on vulnerable instances, which limits real-world exposure where that configuration is in use. Authentication requirement is confirmed by the CVSS vector (PR:L), meaning a low-privileged, authenticated collaborator is sufficient; no user interaction is needed.

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 (88ee5874-cf24-4952-aea0-31affedb7ff2) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
vuln.today AI 8.1 HIGH

Network-reachable web route, no special conditions beyond holding Code write (PR:L), no UI; permanent deletion of releases/attachments gives I:H and A:H with no data exposure (C:N).

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

Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).

CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2

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

Lifecycle Timeline

3
CVSS changed
Oct 07, 2026 - 21:23 NVD
8.1 (None) 8.1 (HIGH)
CVE Published
Oct 06, 2026 - 22:17 cve.org
UNKNOWN (no severity yet)
CVE Published
Oct 06, 2026 - 22:17 cve.org
HIGH 8.1

DescriptionCVE.org

The Gitea web route for deleting tags (POST /{owner}/{repo}/tags/delete) requires only write access to the Code unit, but shares its handler with release deletion and did not check that the target was a plain tag. A collaborator with Code write access and without Releases write access could permanently delete published releases of that repository, including their attachments. Protected tag rules covering the release tag still blocked the deletion.

Technical POC Analysis

CWE-732 (Incorrect Permission Assignment for Critical Resource), with a secondary CWE-863 (Incorrect Authorization) per the advisory.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A broken access control flaw in Gitea (versions up to and including 28.0.0) allows any authenticated repository collaborator with write access to code - but not to releases - to permanently destroy published releases and their attached artifacts with a single request. Because Gitea is commonly used as an internal source-control and release-distribution platform, affected organizations risk irreversible loss of release artifacts, binaries, and provenance records that downstream teams and customers may depend on, and attribution of the deletion may be difficult. Leadership should care because the damage is destructive rather than data-exposing, requires only trusted-insider level access, and no vendor patch is currently available.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict Code-unit write access to the minimum necessary trusted users and separate code-write from release-management duties; block or monitor POST requests to the /{owner}/{repo}/tags/delete route at the reverse proxy or WAF for users lacking Releases write permission; enable Gitea audit logging with alerting on tag and release deletion events; maintain and test immutable offline backups of releases and attachments to enable recovery; limit exposure of Gitea instances to trusted networks where operationally feasible.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular self-hosted Git forge, common in dev teams but not universal
Data Quality
7 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment Vendor 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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

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

Vendor StatusVendor

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