Skip to main content

Gitea EUVDEUVD-2026-93925

| CVE-2026-96589 MEDIUM
Operation on a Resource after Expiration or Release (CWE-672)
2026-10-06 88ee5874-cf24-4952-aea0-31affedb7ff2
4.3
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
    Named as recipient of private-repo transfer
  2. Delivery
    Granted temporary read collaboration
  3. Exploit
    Reject or cancel the transfer
  4. Execution
    Collaboration persists unrevoked
  5. Impact
    Clone repo and read code/issues/PRs/wiki

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Operation on resource after expiration or release
Exploitation Conditions

Requires the repository owner to initiate a transfer of a PRIVATE repository to a Gitea user who lacks prior access to it; that named recipient is then granted read collaboration which is NOT revoked when the transfer is rejected or cancelled. Limiting factors that reduce real-world risk: the attacker must be the SPECIFIC user designated as the transfer recipient (not any arbitrary user), must hold a valid authenticated Gitea account, and a transfer must actually have been initiated toward them - it is not attacker-initiated against default configurations. Pre-existing collaborations are unaffected by the fix. Impacts Gitea versions ≤1.27.3.

Impact

This is a stale-permission/access-control flaw (CWE-672) in Gitea where a private-repository transfer recipient retains read collaboration after the transfer is rejected or cancelled. The provided CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, base 4.3) indicates a network-reachable, low-privilege, no-user-interaction issue with confidentiality-only impact - consistent with the description. Risk signals are uniformly low-to-moderate and non-conflicting: EPSS is 0.27% (17th percentile), there is no CISA KEV listing (not actively exploited), and no public exploit code was identified - only the vendor fix PR. The one caveat is impact scoping: NVD rated confidentiality as Low (C:L), but the description states the recipient retains full read of the repository's code, issues, pull requests and wiki and can clone it, which argues for a High confidentiality impact on the affected repository - see assessed vector. Net assessment: a genuine but narrowly-scoped privacy/access-control bug, not a mass-exploitation priority. It matters most to organizations that routinely transfer private repositories and rely on rejection/cancellation to fully revoke access. No data is missing beyond POC status; absence of KEV and low EPSS together suggest no widespread exploitation.

Exploit ScenarioDerived

A repository owner initiates a transfer of a private repo to another Gitea user who previously had no access; that user is auto-granted temporary read collaboration. The recipient (or owner) then rejects or cancels the transfer, but the collaboration is never revoked, so the recipient silently keeps read access and clones the full repository, issues, PRs and wiki without the owner being notified. No public exploit code exists; exploitation requires only being the designated recipient of an attempted transfer (PR:L, AC:L, no user interaction by the victim).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 07, 2026

Gitea through 1.27.3 grants the named recipient of a private-repository transfer temporary read collaborator access so they can review the repository, but rejecting or cancelling that transfer never revokes the collaboration, leaving the recipient with persistent read access to the private repository's code, issues, pull requests and wiki, including the ability to clone it, without any notification to the repository owner. Exploitation requires the repository owner to initiate a transfer of a private repository to a specific authenticated Gitea user who lacks prior access, and the affected party is that designated recipient rather than an arbitrary user; it is not attacker-initiated against default configurations. Severity is moderate (assessed CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N; published base score 4.3) with no public exploit identified at time of analysis and a low EPSS of 0.27% (17th percentile). Vendor-released patch: Gitea 28.0.0.

RemediationAI

Upgrade to Gitea 28.0.0, which is the vendor-released patch version referenced by the project release announcement (https://blog.gitea.com/release-of-28.0.0/) and release tag (https://github.com/go-gitea/gitea/releases/tag/v28.0.0), with the underlying fix in PR https://github.com/go-gitea/gitea/pull/39042 and advisory GHSA-xfqq-h54g-92f8; upgrading also applies migration 351, which backfills the RecipientAccessGranted flag as false, so any stale collaboration that already exists must still be removed manually. Because the vulnerable behaviour grants access silently and the repository owner is not notified, operators who cannot upgrade immediately should audit private repositories for collaborations that correspond to rejected or cancelled transfers: enumerate the collaborators of each private repository, compare them against the RepoTransfer history, and revoke read access for any user whose only claim to access came from an unaccepted transfer - for example by removing the user from the repository's collaborator list in the web UI or via the API. As a compensating measure, restrict who can be named as a transfer recipient and require owner review of the collaborator list after every cancelled transfer; the trade-off is operational overhead and the risk of also stripping legitimate pre-existing collaborations if the audit is imprecise, since the upstream fix deliberately preserves collaborations that existed before the transfer. Note that retained access includes the full private repository contents, issues, pull requests and wiki, so any affected recipient should be treated as having had the ability to clone the repository, and operators should rotate any secrets, tokens or deploy keys that were stored in the repository and consider the code exposed to that named account. No public exploit code has been identified, so prioritisation can follow normal patch cadence for private-repository deployments rather than emergency response, but the fix should not be deferred indefinitely given the silent, persistent nature of the exposure.

Affected VersionsENISA

Gitea 0 ≤1.27.3

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

The flaw is a stale-permission/access-control defect classified as CWE-672 (Operation on a Resource after Expiration or Release): an authorization record created for a temporary purpose outlives the lifecycle event that should have invalidated it. In Gitea's transfer workflow, when a private repository is transferred to a user who does not already have access, the application inserts a read-level collaboration (perm.AccessModeRead) for the recipient so they can inspect the repository before accepting. Rejection or cancellation of the pending transfer removed the RepoTransfer record but not the corresponding row in the collaboration table, so the recipient continued to receive read-level effective permissions through Gitea's access model. The upstream fix, delivered via GitHub PR 39042 and shipped in v28.0.0, introduces a RecipientAccessGranted boolean on the RepoTransfer model, persisted through a new xorm model migration (migration 351, AddRecipientAccessGrantedToRepoTransfer) that adds a NOT NULL DEFAULT false column. CreatePendingRepositoryTransfer now records whether access was granted, allowing transfer rejection/cancellation to delete only the transfer-granted collaboration while preserving collaborations that predate the transfer. The patch also refactors DeleteCollaboration into a shared deleteCollaboration helper with a deleteCollaborationByMode variant, changes access checking from HasAnyUnitAccess to GetIndividualUserRepoPermission with HasAnyUnitAccessOrPublicAccess, and stops DeleteCollaboration from forcibly un-watching a repository when the user still retains public read access - a behavioural refinement that prevents the revocation logic itself from over-reaching.

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 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 6.5 MEDIUM

Remote authenticated recipient (PR:L, AV:N) gains full read of one private repo (C:H), with no integrity or availability impact; exploitation depends on a transfer being initiated to the attacker.

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

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
Low
Integrity
None
Availability
None

Lifecycle Timeline

2
CVSS changed
Oct 07, 2026 - 15:22 NVD
4.3 (MEDIUM)
CVE Published
Oct 06, 2026 - 20:17 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

When a private repository is transferred to a user who lacks access, Gitea grants that recipient temporary read access as a collaborator so they can review the repository. Rejecting or cancelling the transfer did not revoke this collaboration, so the named recipient kept persistent read access to the private repository, including its code, issues, pull requests and wiki, and could clone it. The repository owner was not notified. Transfer-granted access is now removed while collaborations that existed before the transfer are preserved.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular self-hosted Git service, moderate but non-ubiquitous enterprise footprint
Data Quality
7 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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-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

CVE-2020-13246 HIGH POC
7.5 May 20

An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita

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