Skip to main content

Gitea CVE-2026-70357

| EUVDEUVD-2026-93917 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-06 88ee5874-cf24-4952-aea0-31affedb7ff2
7.5
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
    Authenticate and start repository migration
  2. Delivery
    Point destination at attacker-controlled hostname
  3. Exploit
    Serve allowed public IP during Gitea validation
  4. Execution
    Rebind DNS to blocked internal address
  5. Impact
    Git clone subprocess connects to internal service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires (1) the ability to initiate a repository migration/mirror in Gitea - on a default install this needs a logged-in user account, though instances with open registration make this effectively unauthenticated; and (2) attacker control over the authoritative DNS for the destination hostname so it resolves to an allowed address during the migration HTTP client's validation and to a blocked internal address when the independent Git clone subprocess later resolves it (classic DNS-rebinding TOCTOU). Exploitation is LIMITED by: the need to control destination DNS with short TTLs, the requirement that migration functionality be reachable, and the version ceiling (Gitea ≤1.27.3; fixed in 28.0.0). The flaw only affects direct connections - when a proxy is configured for Git/migrations, egress restriction becomes the proxy's responsibility and this validation gap does not apply the same way. The bypass defeats the ALLOWED_HOST_LIST/blocked-host egress controls specifically on the Git subprocess path.

Impact

Signals conflict in a way that pulls real-world priority below the 7.5 CVSS 'High' rating. The CVSS vector (AV:N/AC:L/PR:N/UI:N) describes an easy remote attack, but EPSS is only 0.15% (3rd percentile) and CISA SSVC lists Exploitation: none, so there is no evidence of real-world activity - it is not in KEV and no public exploit is identified at time of analysis. SSVC's Automatable: yes is credible because DNS rebinding can be scripted with low-TTL records, yet Technical Impact: partial matches the limited nature of a git-clone SSRF. Two discrepancies should be verified: (1) the CVSS vector sets PR:N, but the description's prerequisite 'an attacker who can start a migration' realistically implies an authenticated account on default Gitea (open registration would restore effective PR:N) - verify against instance configuration; (2) NVD scores impact as C:N/I:H/A:N, which is atypical for an SSRF that normally yields confidentiality impact (reading internal services) rather than integrity - treat the impact type as uncertain. Net: a genuine, well-understood TOCTOU/SSRF bug worth patching on internet-reachable Gitea instances (especially with open registration), but currently a moderate rather than urgent priority given no exploitation, very low EPSS, and the DNS-control precondition.

Exploit ScenarioDerived

An attacker with access to the migration feature points a repository migration at a hostname under their control. Their authoritative DNS returns an allowed public IP while Gitea validates the host against its allow/block lists, then rebinds the name to a blocked internal address (e.g., cloud metadata or an intranet Git/HTTP service) by the time the Git subprocess independently resolves and connects, bypassing the egress controls. No public proof-of-concept is identified at time of analysis, but the DNS-rebinding technique is well understood and scriptable.

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

Server-side request forgery in Gitea 1.27.3 and earlier lets a user who can start a repository migration or mirror reach blocked internal addresses: Gitea validates the destination hostname against its egress allow/block lists before invoking Git, but the Git subprocess resolves the hostname independently when it actually connects, so an attacker who controls the destination's DNS can re-point the name from an allowed address to an internal one between validation and connection. Exploitation requires both the ability to initiate a migration (on a default install this means a logged-in account, and instances with open registration make it effectively unauthenticated) and control of authoritative DNS with suitably short TTLs, which is why the independent assessment rates it CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N rather than the vendor's 7.5. No public exploit code has been identified at time of analysis, EPSS is only 0.15% (3rd percentile), and SSVC records Exploitation: none with partial technical impact; the vendor-released fix is Gitea 28.0.0.

RemediationAI

Upgrade to Gitea 28.0.0 (release v28.0.0, fix PR #39426, advisory GHSA-p3pc-g8m5-hrrr), which closes the gap by tunnelling Git's clone traffic through Gitea's validated egress path; if you cannot upgrade immediately, the most reliable compensating control is to remove the attack precondition by disabling repository migrations and mirrors for untrusted users - turn off open registration and revoke or restrict the migration/mirror creation permission, since no other code path triggers the affected clone. After upgrading, hardening is available through the new configuration: set EGRESS_MODE = strict under both [security] and [migrations] and populate ALLOWED_HOST_LIST with only the hosts you actually migrate from, accepting the trade-off that every legitimate source must be listed manually and that, in strict mode, portless entries cover only ports 80 and 443. Alternatively, force Git and migration traffic through an egress proxy ([proxy], [git.config] http.proxy, or the environment) and enforce the host allow/block policy at that proxy, because Gitea explicitly does not apply its egress lists to proxied targets - the trade-off being that the proxy then becomes the sole security boundary and must itself deny internal, loopback, CGNAT, link-local, and cloud metadata destinations. Network-level egress filtering on the Gitea host, blocking RFC 1918/loopback/CGNAT ranges and metadata endpoints such as 169.254.169.254, provides defense in depth, and note that on pre-28.0.0 releases the existing ALLOWED_DOMAINS, BLOCKED_DOMAINS, and ALLOW_LOCALNETWORKS settings do not protect the independently connecting Git subprocess.

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 root cause is CWE-918 (server-side request forgery) realized as a classic DNS-rebinding time-of-check-to-time-of-use gap. Gitea's repository migration/mirror feature performs host validation inside its own HTTP client dialer, where the destination hostname is checked against the configured allow list and block list (ALLOWED_HOST_LIST / BLOCKED_HOST_LIST and, in older releases, ALLOWED_DOMAINS / BLOCKED_DOMAINS / ALLOW_LOCALNETWORKS). The actual clone, however, is executed by an external Git subprocess that resolves the hostname itself at connect time. Because the two resolutions are independent, an attacker controlling authoritative DNS for the destination host can answer the validation lookup with a permitted public address and then answer Git's lookup with a blocked internal, loopback, or cloud-metadata address, so the network-level egress control is bypassed rather than broken. The upstream fix (PR #39426, shipped in v28.0.0) introduces a gitproxy service (gitproxy.Run and gitproxy.MaybeTunnel referenced in the diff) that routes Git's connections through Gitea's validated egress path, and reworks the configuration into an EGRESS_MODE of lax or strict with ALLOWED_HOST_LIST / BLOCKED_HOST_LIST entries supporting CIDR blocks and explicit port specifications, denial of reserved ranges such as link-local and cloud metadata addresses, and clearer documentation that these lists are only enforced on direct connections - when a proxy is configured for Git or migrations, restricting the proxied target becomes the proxy server's responsibility.

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

Starting a migration needs an account (PR:L); winning the validate-then-resolve DNS race is a condition beyond full attacker control (AC:H); git-clone SSRF mainly yields limited internal read access (C:L), diverging from NVD's I:H.

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

Lifecycle Timeline

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

DescriptionCVE.org

Gitea validates a repository migration hostname against its network allow and block lists before invoking Git, but the Git subprocess independently resolves the hostname when connecting. An attacker who can start a migration and control the destination's DNS can change the address between validation and connection to reach a blocked internal address. The affected path is the Git clone operation; validation in the migration HTTP client's dialer does not protect the independently connecting Git subprocess.

Technical POC Analysis

CWE-918 (SSRF), specifically a TOCTOU / DNS-rebinding defect: the address validated is not the address used.

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

Gitea versions 1.27.3 and earlier contain a server-side request forgery flaw that could allow a user with an account - or anyone at all on instances with open registration - to make the Gitea server connect to internal network addresses that its own egress controls were meant to block. A successful attack requires the attacker to also control authoritative DNS for the destination and to use short TTLs, so exploitation is not trivial, but the consequence is unauthorized reach into internal systems and the exposure of data those systems hold. Leadership should care because the flaw lives in a self-hosted developer platform that often sits trusted inside the network perimeter, and no vendor patch is currently available, making configuration and network controls the only near-term defenses.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict repository migration and mirror creation to trusted administrators and disable open registration; enforce strict egress filtering so Gitea hosts cannot reach internal or metadata address ranges; pin or pre-approve migration destination hostnames rather than allowing arbitrary names; monitor and alert on migration/mirror creation and on DNS records re-pointing from allowed addresses to internal ones; segment the Gitea host so any SSRF reach is limited to non-sensitive services.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular self-hosted Git forge, common among developers, not enterprise-ubiquitous
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
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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-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

CVE-2020-13246 HIGH POC
7.5 May 20

An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita

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