Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate and create an admin-owned repo
-
DeliveryConfigure push mirror to benign external host
-
ExploitRepoint DNS to internal Git service
-
ExecutionTrigger mirror synchronization, bypassing allow/block list
-
ImpactForce-push repository contents to internal target
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
|
| Exploitation Conditions | Requires: (1) an authenticated Gitea account, which inherently grants administrator rights over any repository the user creates, so no pre-existing elevated privilege is needed; (2) the push-mirror feature in use on a repository; (3) attacker control over DNS resolution of the configured remote hostname so it resolves to an allowed address when the mirror is created and later to a blocked/internal address at synchronization time (the CWE-367 time-of-check/time-of-use gap); and (4) an internal Git service that is network-reachable from the Gitea server. Limiting factors: exploitation only matters where the [migrations] allow/block lists are actually configured to protect internal ranges, the attacker must be able to influence DNS/name resolution, and value is realized only if reachable internal Git endpoints exist. No end-user interaction is required. |
| Impact | Signals are consistent and point to a real-but-bounded risk rather than a mass-exploitation emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) describes a network-reachable flaw requiring only low privileges - and the description clarifies that "administrator access to a repository" is trivially obtained because any user gets admin on repositories they create themselves, so this effectively reduces to any authenticated Gitea user. However, EPSS is very low (0.12%, 2nd percentile), there is no CISA KEV listing, and SSVC reports Exploitation: none and Automatable: no, all of which argue against widespread opportunistic attacks. The CWE-367 (TOCTOU) nature explains the low automatability: exploitation depends on the attacker controlling DNS resolution so a name validated as safe at mirror-creation time later resolves to a blocked/internal address, a deliberate, targeted setup rather than a drive-by. SSVC Technical Impact: total aligns with the C:H/I:H rating because a successful attack can force-push to and read responses from internal Git services. Net assessment: a genuine SSRF/TOCTOU bypass worth patching on internet-exposed or multi-tenant Gitea instances, but current telemetry (no POC, no KEV, low EPSS) indicates it is not under active or automated exploitation. Note one tension to verify: the official Gitea CVSS uses S:U, but reaching separate internal Git services is arguably a scope change (see assessed vector). |
| Exploit ScenarioDerived | An attacker registers (or already has) a normal Gitea account, creates a repository they administer, and configures a push mirror pointing at a hostname that currently resolves to an allowed external address so it passes the [migrations] allow/block check. They then repoint that hostname's DNS to an internal-only Git service; on the next scheduled or manually triggered synchronization Gitea passes the stored address straight to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Push mirror synchronization in Gitea 1.27.3 and earlier reuses a remote address that was validated against the [migrations] allow/block lists only once, at mirror-creation time, so a hostname that later resolves to a blocked or internal address is still handed to git push - a time-of-check/time-of-use flaw (CWE-367). An authenticated user who administers a repository (which includes any repository they create themselves) can therefore aim a push mirror at an internal Git service and force-push the repository's contents to it, assuming attacker influence over name resolution and a network-reachable internal endpoint. The assessed severity is high (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N) because scope changes and both confidentiality and integrity of internal Git services are affected, but no public exploit code has been identified at time of analysis and EPSS is low (0.12%, 2nd percentile), with SSVC recording no observed exploitation and a non-automatable attack path - a real but bounded risk rather than a mass-exploitation emergency.
RemediationAI
Upgrade to Gitea 28.0.0, the vendor-released patched version referenced by the release notes and tag (https://blog.gitea.com/release-of-28.0.0/ and https://github.com/go-gitea/gitea/releases/tag/v28.0.0); operators backporting rather than jumping releases should track the upstream changes in PRs 39010 and https://github.com/go-gitea/gitea/pull/39426 and review the advisory at https://github.com/go-gitea/gitea/security/advisories/GHSA-hcgw-r9gf-8mph. Where upgrading is delayed, apply targeted compensating controls rather than generic hardening: enforce outbound egress filtering from the Gitea host so it can only reach the specific Git endpoints it legitimately mirrors to, which directly defeats the DNS-change primitive but will break any unpredicted mirror targets and must be maintained alongside mirror inventory; verify and pin name resolution for mirror remotes (for example by resolving via a controlled resolver or using only hosts whose DNS is not attacker-influenceable), accepting the operational overhead of keeping those records current; re-audit all existing push mirrors, since the stored address is the value that gets reused at sync time, and re-create any mirror whose hostname is not under trusted DNS control; and, if push mirroring is not required, disable the feature entirely (Administration settings) at the cost of losing synchronization functionality. Restricting who may create repositories reduces the attacker pool - because create-your-own-repo already grants the repository admin rights needed for this attack - but this is only viable where self-service repository creation is not a business requirement.
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
Gitea's push mirroring feature synchronizes a local repository to a remote Git endpoint by invoking git push against a stored remote URL. Administrative configuration provides [migrations] allow and block lists (ALLOWED_DOMAINS / BLOCKED_DOMAINS) intended to prevent repository migration and mirroring from reaching internal or otherwise restricted addresses. The implementation validated the configured remote address at creation time and then reused the stored value on every subsequent synchronization without re-resolving or re-checking it, creating a classic CWE-367 time-of-check/time-of-use gap: DNS for the hostname can resolve to an allowed address during creation and to an internal address at sync time, or DNS rebinding can achieve the same effect. The fix touches Gitea's git plumbing - modules/git, modules/git/gitcmd (command/error handling, remote resolution and stderr classification for push/clone operations) and the API migration router - rather than a single isolated check, which indicates the remote address is now handled more defensively along the command-execution path. The CVSS vector confirms a network-reachable, low-privilege (PR:L) attack requiring no user interaction, with the assessed vector (S:C/C:H/I:H/A:N) reflecting that the compromised boundary extends beyond the Gitea instance to internal Git infrastructure.
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:N
Any authenticated user administers self-created repos so PR:L; attacker fully controls both DNS states so AC:L; impact reaches separate internal Git services (SSRF read plus force-push) giving S:C, C:H, I:H, A:N.
Primary rating from Vendor (88ee5874-cf24-4952-aea0-31affedb7ff2).
CVSS VectorVendor: 88ee5874-cf24-4952-aea0-31affedb7ff2
Lifecycle Timeline
3DescriptionCVE.org
Gitea validated a push mirror's remote address against the [migrations] allow and block lists only when the mirror was created. Each synchronization passed the stored address directly to git push, so a name that later resolved to a blocked or internal address was still reached. A user with administrator access to a repository, which includes repositories they create themselves, could aim push mirror synchronization at internal Git services and force-push the repository's contents to them.
Technical POC Analysis
CWE-367 (time-of-check/time-of-use), with CWE-918 (SSRF) as the downstream consequence.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Gitea deployments at version 1.27.3 and earlier contain a mirroring flaw that lets any authenticated user who administers a repository - including repositories they create themselves - redirect a push mirror to an internal Git service and overwrite its contents, because the address allow/block list is checked only once at mirror creation and never revalidated. Confidentiality and integrity of internal source code repositories are both at risk, and the scope change means exposure can extend beyond the Gitea host into adjacent internal systems reachable from the mirroring server. Because Gitea is commonly self-hosted and used to host proprietary source code, leadership should treat this as a source-code integrity and internal network exposure issue, not a routine application bug.
No vendor-released patch identified at time of analysis. Interim mitigations: disable or restrict the push mirror feature; limit repository administration and self-service repository creation to trusted users; enforce egress filtering so Gitea hosts cannot reach internal Git endpoints or RFC1918/link-local addresses; revalidate mirror target hostnames at push time via an egress proxy or DNS pinning; audit and remediate existing mirror configurations that resolve to internal or blocked addresses; monitor DNS resolution changes and anomalous outbound git push activity.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-93912
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB