Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain writable deploy key on target repo
-
DeliveryPush over SSH authenticated by deploy key
-
ExploitPusher misidentified as repository owner
-
ExecutionSet push option to change visibility or create protected tag
-
ImpactPrivate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
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.
Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).
CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
Lifecycle Timeline
3DescriptionCVE.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
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.
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
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
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
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
EUVD-2026-93918
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB