Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain per-branch maintainer-edit grant
-
DeliveryCraft push updating multiple refs
-
ExploitReuse cached branch permission across refs
-
ExecutionBypass per-ref authorization check
-
ImpactGain full repository write access
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 already hold a legitimate per-branch write/maintainer-edit grant on at least one ref of the target Gitea repository (for example, 'allow maintainer edits' enabled on their pull request branch), and requires pushing multiple refs within a single pre-receive hook session so the cached permission is reused. It is limited to Gitea 1.25.5 (fixed in 1.26.3): an attacker with zero prior access to the repository cannot trigger it, so instances that grant no per-branch write to untrusted users, or that have upgraded, are not exploitable. No user interaction from a victim is needed (UI:N), and access is network-reachable (AV:N) via normal Git-over-HTTP/SSH push. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N, C:H/I:H/A:H, base 8.8) reflects an easy, network-reachable, low-privilege escalation with no user interaction - realistic for any Gitea instance with untrusted or semi-trusted collaborators. However, the low-privilege prerequisite is meaningful: an attacker must already possess a legitimate per-branch maintainer-edit grant (e.g., via an accepted pull request with 'allow maintainer edits'), so this is an insider/collaborator escalation, not a fully anonymous compromise. Signals are internally consistent but point to bounded real-world urgency: EPSS is only 0.20% (10th percentile), there is no CISA KEV listing and no public exploit identified, indicating no evidence of active or widespread exploitation. No SSVC decision record is provided in the input. Net: a genuine, high-severity authorization bug worth prompt patching on multi-tenant or public-facing Gitea instances, but not an emergency drop-everything item for tightly controlled single-tenant deployments. Note the C:H/A:H components are somewhat generous - the primary demonstrated impact is integrity (write access); verify confidentiality/availability relevance against your branch-protection model. |
| Exploit ScenarioDerived | A semi-trusted collaborator opens a pull request and is granted per-branch maintainer-edit rights on a single feature branch. In one Git push (a single pre-receive hook session) they include updates to additional refs - such as a protected main branch or release tag - and Gitea reuses the cached branch-level approval to authorize all of them, giving the attacker full repository write. No public exploit code has been identified, but the low complexity (AC:L) makes the technique straightforward to reproduce once the caching behavior is understood. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 06, 2026
Privilege escalation in Gitea 1.25.5 lets a user holding a per-branch maintainer-edit grant reuse that write permission against other refs and obtain full repository write access. The flaw stems from a branch-specific permission result being cached and incorrectly reused across multiple refs within a single pre-receive hook session. It is an authenticated authorization-bypass (CWE-863) fixed in Gitea 1.26.3; no public exploit has been identified and EPSS exploitation probability is low (0.20%).
RemediationAI
Vendor-released patch: upgrade to Gitea 1.26.3 (or later, e.g. 1.26.4) which corrects the per-ref permission recomputation; see the release notes at https://blog.gitea.com/release-of-1.26.3-and-1.26.4/ and the fix in https://github.com/go-gitea/gitea/pull/38151. Review the advisory at https://github.com/go-gitea/gitea/security/advisories/GHSA-649p-mmhf-85c7 before deploying. If you cannot patch immediately, reduce exposure by not granting 'allow maintainer edits' on pull requests from untrusted contributors and by tightening branch-protection so fewer users hold per-branch write grants - the trade-off is reduced collaboration convenience for external contributors. Avoid exposing the instance to anonymous or low-trust users who can obtain any branch write grant, and audit recent pushes to protected branches for anomalous ref updates; note these are containment measures only and do not close the underlying caching flaw.
Affected VersionsENISA
Affected Packages
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, lightweight Git service written in Go, offering repository hosting, pull requests, and fine-grained branch protection. When a Git push is received, Gitea runs a pre-receive hook that evaluates write permission for each ref (branch/tag) being updated. In 1.25.5 the result of a write-permission check - specifically a maintainer/'allow edits' grant scoped to one branch - is cached and applied to the other refs processed in the same hook session, rather than being recomputed per ref. This is a classic CWE-863 (Incorrect Authorization) failure: a decision valid for one object is trusted for a different object, collapsing per-branch access boundaries into repository-wide write. The single affected product is Gitea Open Source Git Server (cpe:2.3:a:gitea:gitea_open_source_git_server), and the root cause was corrected in PR go-gitea/gitea#38151.
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:H/I:H/A:H
Requires an existing per-branch write grant (PR:L) over the network with no interaction (AV:N/AC:L/UI:N); impact is primarily repository-write integrity (I:H) with limited confidentiality/availability effect (C:L/A:L).
Primary rating from Vendor (Gitea).
CVSS VectorVendor: Gitea
Lifecycle Timeline
2DescriptionCVE.org
Gitea 1.25.5 caches a branch-specific write-permission result across multiple refs in one pre-receive hook session, allowing a per-branch maintainer-edit grant to be reused for other refs and escalate to full repository write access.
Executive ViewAI
Gitea versions through 1.25.5 contain an authentication-required privilege escalation flaw (CVSS 8.8) allowing users with limited per-branch write permissions to obtain full repository access by exploiting permission caching during repository operations. This exposes organizations to unauthorized code commits, policy violations, and supply-chain risk through potential repository hijacking.
Apply vendor patch.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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
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
An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita
Same weakness CWE-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: Important| 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 |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-41636
GHSA-649p-mmhf-85c7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB