Skip to main content

Gitea EUVDEUVD-2026-93918

| CVE-2026-79960 HIGH
Incorrect Authorization (CWE-863)
2026-10-06 88ee5874-cf24-4952-aea0-31affedb7ff2
7.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
    Obtain writable deploy key on target repo
  2. Delivery
    Push over SSH authenticated by deploy key
  3. Exploit
    Pusher misidentified as repository owner
  4. Execution
    Set push option to change visibility or create protected tag
  5. Impact
    Private repository exposed publicly

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

Requires the attacker to possess a deploy key with write (read-write) access to the target repository; a plain read-only deploy key is insufficient. Exploitation occurs during an authenticated git push whose hook pipeline mis-records the repository owner as the pusher, so the attacker inherits the owner's authorization. Concrete abuse paths named in the advisory: creating protected tags while absent from the tag allow list, and changing repository visibility (e.g. private→public) via git push options; AGit-flow pull requests are also misattributed to the owner. Limiting factors: no exploitation without a writable deploy key (authenticated precondition, PR:L), no user interaction, and only Gitea instances at or below 1.27.3 are affected.

Impact

Signals are consistent and point to a genuine but moderate, access-gated risk rather than a widespread emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N, 7.1 High) requires privileges (PR:L) - specifically possession of a writable deploy key - which materially limits the attacker population to those already granted repository write via a deploy key. This is corroborated by CISA SSVC (Exploitation: none, Automatable: no, Technical Impact: partial), which indicates no observed exploitation and that the flaw is not trivially scalable. EPSS is very low at 0.15% (3rd percentile), and the vulnerability is NOT in CISA KEV, so there is no public exploit identified at time of analysis. The C:H rating is driven by the ability to flip a private repository to public (information disclosure), while integrity is only Low (creating protected tags / changing push-option-controlled settings) and availability is unaffected. No signals conflict; all sources agree this is a real authorization-bypass bug (CWE-863) worth patching promptly for any instance that issues deploy keys, but it is not a mass-exploitation priority. One caveat: the CVSS labels this an unchanged scope (S:U) even though making a private repo public arguably crosses a trust boundary - defenders may consider the real-world confidentiality impact slightly higher than S:U suggests.

Exploit ScenarioDerived

An attacker who holds (or compromises) a read-write deploy key for a Gitea repository performs a git push; because the push hook pipeline records the repository owner as the pusher, the attacker's push is evaluated with the owner's permissions. Using push options, they flip the private repository to public to exfiltrate its contents, or create protected tags despite not being on the tag allow list. No public exploit code is identified, but the fix PR (#37306) documents the exact code paths involved.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% 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 1.27.3 and earlier misattributes the pushing identity to the repository owner whenever a git push is authenticated with a repository deploy key, causing the pre-receive hook pipeline to evaluate permissions against the owner rather than the deploy key. An attacker holding a write-enabled deploy key can therefore create protected tags despite not being on the tag allow list, or flip repository visibility (for example private to public) through git push options, and pull requests created via the AGit flow are likewise attributed to the owner. Access is gated: a read-only deploy key is insufficient, exploitation requires an authenticated push (CVSS PR:L), no public exploit code has been identified at time of analysis, EPSS is only 0.15% (3rd percentile), and CISA SSVC rates exploitation as none with partial technical impact.

RemediationAI

Upgrade to Gitea 1.28.0 or later - this is the vendor-released patch identified in the advisory and release references (GHSA-7769-9pr9-m24h, https://blog.gitea.com/release-of-28.0.0/, https://github.com/go-gitea/gitea/releases/tag/v28.0.0, fix commit series in https://github.com/go-gitea/gitea/pull/37306); no separately backported fix for the 1.27.x branch is documented in the supplied references, so validate whether a maintenance release exists for your minor branch. Where an immediate upgrade is not possible, the highest-value compensating control is to inventory every deploy key across all repositories and downgrade any that does not strictly need push rights to read-only, since exploitation is impossible without a write-enabled deploy key - the trade-off is that read-only keys break CI/CD jobs, mirroring, or automation that pushes commits, tags, or AGit pull requests. Restrict who may create deploy keys with write permission and prefer per-repository user accounts or tokens with scoped permissions so the acting identity matches a real user. Review audit logs for suspicious repository visibility changes (private-to-public transitions), protected tag creations by deploy keys, and AGit-created pull requests attributed to repository owners; on a suspect instance, rotate or revoke all writable deploy keys and re-scan exposed repositories for content or tags that appeared without an authorized pusher. Monitoring and key hygiene reduce exposure but do not correct the underlying misattribution, so treat them as temporary measures.

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 CWE-863 incorrect authorization defect in Gitea's server-side git hook chain. When SSH/HTTP push authentication succeeds via a deploy key, Gitea's serv command exports environment variables (repository owner, repository name, pusher identity, key ID, deploy key ID) that the hook subprocess (cmd/hook.go) reads to build the authorization context for pre-receive and post-receive processing. In affected builds the pusher was populated from EnvRepoUsername (the repository owner) rather than from the actual deploy-key actor, so every downstream permission check-protected tag creation against the tag allow list, visibility-changing push options, and AGit (push-to-PR) attribution-was evaluated as if the owner had initiated the push. The upstream fix (PR go-gitea/gitea#37306, shipped in the 1.28.0 release train) renames and separates owner/repo identity from pusher identity, introduces EnvPusherName and EnvPusherExtDoerData so the true doer is propagated, threads that doer data into LFS bearer-token issuance in cmd/serv.go (GetLFSAuthTokenWithBearer), and updates the KeyID/PublicKeyID environment variables and surrounding model-migration scaffolding. This is an identity-provenance bug rather than a memory-safety or injection issue, which is consistent with the CVSS profile of high confidentiality impact (C:H, exposure of private repository content when visibility is changed) and only low integrity impact (I:L), with no availability effect.

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

Writable deploy key is required so PR:L; push is remote with no interaction (AV:N/AC:L/UI:N); flipping a private repo public gives C:H, tag/visibility tampering gives I:L, no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/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
High
Integrity
Low
Availability
None

Lifecycle Timeline

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

DescriptionCVE.org

When a push was authenticated with a deploy key, Gitea recorded the repository owner as the pusher, so permission checks in the push hook pipeline evaluated the owner instead of the deploy key. A holder of a writable deploy key could create protected tags without being on the tag allow list and change repository visibility through push options, for example making a private repository public. Pull requests created through the AGit flow with a deploy key were also attributed to the owner.

Technical POC Analysis

Bug class: CWE-863, Incorrect Authorization.

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

Organizations hosting code on Gitea 1.27.3 or earlier face a permissions bypass in which a write-enabled deploy key can act with repository owner privileges, enabling unauthorized protected tag creation or private-to-public repository changes that could expose sensitive source code. Exploitation requires an authenticated push and no public exploit identified at time of analysis, but no vendor-released patch identified at time of analysis means affected teams must rely on immediate access controls and monitoring to protect their codebase.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Restrict deploy keys to read-only, revoke unnecessary write-enabled deploy keys, audit repository visibility and protected tag changes, disable AGit flow if not required, and monitor Gitea push logs for unauthorized changes.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular self-hosted Git service, common but not ubiquitous in enterprises
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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
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
High
Technical Impact
Partial

Priority Score

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