Skip to main content

Gitea EUVDEUVD-2026-58167

| CVE-2026-58440 MEDIUM
Incorrect Authorization (CWE-863)
2026-07-21 https://github.com/go-gitea/gitea GHSA-66m4-5jjr-2rg5
6.8
CVSS 3.1 · Vendor: https://github.com/go-gitea/gitea
View

Attack ChainAIDerived

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

  1. Access
    Attain admin collaborator access on target private repo
  2. Delivery
    Create webhook pointing to attacker-controlled endpoint
  3. Exploit
    Owner revokes collaborator access via Gitea UI
  4. Execution
    DeleteCollaboration() omits webhook cleanup, webhook remains active=true
  5. Persist
    Subsequent repo events trigger webhook delivery without creator access re-check
  6. Impact
    Attacker passively receives full event payloads (issue bodies, commit data, secrets) indefinitely

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

Exploitation requires the attacker to have previously held admin-level collaboration permission on a private Gitea repository, specifically sufficient permission to create repository-level webhooks (a capability restricted to admin collaborators, not base collaborators). The attacker must configure a webhook pointing to an endpoint they control before their access is revoked. After revocation, no authentication, network access to the Gitea instance, or further attacker interaction is required - the exfiltration is fully passive. Exploitation is limited to Gitea instances running versions prior to 1.27.0. The attack is constrained to repository events that occur after the webhook is created; historical content is not retroactively exposed. The exfiltration is invisible to repository owners unless they manually inspect the webhook list, as Gitea generates no alert on delivery to a webhook whose creator is no longer a collaborator.

Impact

The provided CVSS 3.1 vector AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N yields a score of 6.8 (Medium), which accurately reflects the threat model: the PR:H prerequisite (prior admin collaboration on the targeted repository) substantially limits the attack surface, while S:C and C:H capture that once established, full event payloads - issue bodies, commit data, repository metadata - cross the revoked authorization boundary to an attacker-controlled endpoint. No CISA KEV listing exists and no public proof-of-concept has been identified, suggesting EPSS is low; however, the attack requires no technical sophistication once the precondition is met and would be naturally discovered by any former admin collaborator who notices their webhook remains active. SSVC assessment: exploitation status is none publicly confirmed; automatable is yes post-setup (no further attacker interaction needed); technical impact is partial (confidentiality only). The real-world risk is elevated specifically for organizations that routinely onboard and offboard external collaborators on private repositories, as the exfiltration is persistent and produces no owner-visible alert. CVSS and EPSS signals are consistent - this is a genuine medium priority, not a deprioritized high-CVSS issue.

Exploit ScenarioDerived

An attacker who holds admin collaborator access on a target private Gitea repository creates a webhook pointing to an endpoint they control, then waits for - or engineers - their access to be revoked by the repository owner. Despite the revocation, Gitea's DeleteCollaboration() leaves the webhook intact and active; every subsequent repository event (new issues, comments, commits, PR activity) delivers the full JSON payload - including issue titles, bodies, commit messages, and the repository.private:true flag - to the attacker's endpoint with no further action required. The repository owner sees no indication of the ongoing disclosure absent a manual webhook audit.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 21, 2026

Webhook persistence after collaborator revocation in Gitea (versions prior to 1.27.0) enables a former admin collaborator to receive ongoing real-time exfiltration of private repository content indefinitely after their access is removed. The DeleteCollaboration() function cleans watches and assignees but never removes or disables webhooks created by the departing user, and the webhook delivery subsystem fires payloads on every subsequent repository event without re-validating the creator's current access. The attack is invisible to the repository owner, requires no further action by the attacker post-revocation, and was runtime-confirmed on gitea/gitea:1.25.4; no public exploit has been identified at time of analysis.

RemediationAI

Upgrade to Gitea v1.27.0 or later; this release incorporates the fixes from pull requests #38406 (https://github.com/go-gitea/gitea/pull/38406) and #38426 (https://github.com/go-gitea/gitea/pull/38426), with corresponding commits de4b8277e9cb576f2315fb03b5ab6478b42a1d31 and f69e15afe7496cc62e96dab244629c69eb31a7bf. If immediate upgrade is not possible, administrators should manually audit and remove webhooks created by any collaborator whose access has been or is being revoked, accessible via repository Settings → Webhooks - note that Gitea does not currently surface the webhook creator in the UI, so this requires cross-referencing webhook creation timestamps with collaboration history. As a partial mitigation, configuring ALLOWED_HOST_LIST in app.ini (refactored to the [security] section in PR #38406) to restrict webhook delivery to trusted external CIDR ranges or hostnames reduces the risk of exfiltration to arbitrary attacker-controlled infrastructure, though it does not remediate the root authorization failure. Restricting admin-level collaboration grants to fully trusted parties is a preventive control with no functional side effects. The advisory is at https://github.com/go-gitea/gitea/security/advisories/GHSA-66m4-5jjr-2rg5.

Affected VersionsENISA

Gitea Open Source Git Server 0 ≤1.26.4

Affected Packages

go gitea.dev fix: 1.27.0
euvd gitea_open_source_git_server no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, 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. The vulnerability resides in services/repository/collaboration.go within the DeleteCollaboration() function, which orchestrates cleanup when a collaborator's access is revoked: it removes the collaboration record, recalculates access levels, drops watchers, and unassigns issues - but performs no webhook lifecycle management. The webhook delivery path, separately, fires payloads synchronously on repository events without consulting current collaborator membership. CWE-863 (Incorrect Authorization) precisely describes the root cause: an authorization check that should exist at webhook delivery time is simply absent. The affected Go package is gitea.dev (CPE: pkg:go/gitea.dev), confirmed vulnerable below version 1.27.0 per GHSA-66m4-5jjr-2rg5. The GHSA advisory also references companion PRs addressing related access-subquery filtering in Actions run listings and SSH key length validation, suggesting the 1.27.0 release is a broader security hardening batch.

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 (https://github.com/go-gitea/gitea) PRIMARY 6.8 MEDIUM
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N
vuln.today AI 6.8 MEDIUM

PR:H required for prior admin collaboration to create webhooks; S:C because payloads cross revoked authorization boundary to external endpoint; I:N and A:N as no write or availability impact exists.

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

Primary rating from Vendor (https://github.com/go-gitea/gitea).

CVSS VectorVendor: https://github.com/go-gitea/gitea

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

DescriptionCVE.org

Affected product

Gitea - services/repository/collaboration.go (DeleteCollaboration) + webhook delivery

Summary

When a collaborator with admin permission on a private repo creates a webhook, that webhook keeps firing after the collaborator's access is revoked. Gitea's revocation cleanup DeleteCollaboration removes the collaboration record, recalculates accesses, drops watches, and unassigns issues - but it does not remove or disable webhooks the user created, and webhook delivery never re-checks whether the creator still has repo access. The former collaborator therefore receives the full payload (issue/comment bodies, commit data) of all future repository events at their controlled endpoint, indefinitely and invisibly.

Affected code

  • services/repository/collaboration.go → DeleteCollaboration() - cleans watches/assignees only; no

webhook cleanup.

  • Webhook delivery path - fires on repo events without re-validating the creator's current access.

Steps to reproduce

Using the provided reproduction materials:

  1. Attacker (admin collaborator) creates a webhook → revoke access.
  2. Control: GET /api/v1/repos/admin/wh-repo (attacker) → 404.
  3. GET .../hooks → webhook still active=true.
  4. Admin creates a new issue after revocation → the catcher receives action:"opened",

issue.title:"CRITICAL SECRET: …", issue.body (sentinel private key), repository.private:true. (Runtime-confirmed on gitea/gitea:1.25.4. Catcher is an internal sentinel listener; the payload is a planted sentinel, not real data; nothing is sent to any external/metadata endpoint.)

Impact

Authenticated former admin-collaborator → ongoing real-time exfiltration of private content created after revocation; invisible to the owner; scope crosses from the application boundary to data the user should no longer access.

Suggested remediation

  1. On revocation, delete/disable webhooks created by the removed collaborator (or hand them to the owner).
  2. Re-validate the creator's current repo access before each webhook delivery.
  3. At minimum, warn admins on revocation if the user created webhooks.

Credit

Reported as part of an incomplete-patch / authorization-residue measurement study (responsible disclosure).

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular self-hosted Git platform, common in SMB, enterprise, and OSS communities
Threat Intel
1
1 source
Data Quality
6 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.2%
Patch available Yes
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

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