Skip to main content

Gitea EUVDEUVD-2026-93922

| CVE-2026-96400 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-06 88ee5874-cf24-4952-aea0-31affedb7ff2
4.3
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 as user with migration rights
  2. Delivery
    Submit migration URL targeting 169.254.169.254
  3. Exploit
    Allow-list match bypasses local-network block
  4. Execution
    Server fetches internal/metadata endpoint
  5. Impact
    Read reserved-address response

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

Exploitation requires a specific non-default configuration: [migrations] ALLOWED_DOMAINS must be set to a matching wildcard entry (e.g., * or *.hostname); the default empty ALLOWED_DOMAINS is explicitly NOT affected. The attacker must be an authenticated Gitea user permitted to start migrations (PR:L). The flaw specifically defeats the intended ALLOW_LOCALNETWORKS = false protection because the local-network block list did not include reserved/link-local ranges (e.g., 169.254.0.0/16) and allow-list hostname matching was honored regardless of the resolved address. Limiting factors: requires authenticated migration privileges, requires an administrator to have weakened the allow list to a wildcard, and impact is bounded to reaching/reading addresses from the server (no code execution or data modification); real-world severity escalates mainly where a cloud metadata service (169.254.169.254) is reachable from the Gitea host.

Impact

This is a genuinely low-to-moderate priority SSRF (CWE-918), not an urgent critical issue. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N = 4.3 Medium) correctly reflects a network-reachable but privilege-gated flaw with only limited confidentiality impact and no integrity or availability impact. Crucially, the vulnerability is NOT present in default configurations: it requires an administrator to have set [migrations] ALLOWED_DOMAINS to a permissive matching entry such as * or a hostname wildcard, which materially shrinks the exploitable population. No EPSS score, no CISA KEV listing, and no public POC were provided in the intelligence, so there is no signal of active or probable near-term exploitation - this appears to be a vendor/researcher-disclosed hardening issue rather than an attacker-driven one. Signals are internally consistent: PR:L matches the description's 'a user who can start migrations,' and C:L/I:N/A:N matches an SSRF that lets an attacker reach internal/link-local addresses (e.g., 169.254.169.254 cloud metadata) and read responses. The one caveat worth verifying with the vendor: SSRF to a cloud metadata endpoint can, depending on the environment, yield IAM credentials, which in practice may exceed a 'Low' confidentiality rating - the base score assumes only limited information disclosure and does not account for environment-specific escalation.

Exploit ScenarioDerived

On a Gitea instance (≤1.27.3) whose administrator has set [migrations] ALLOWED_DOMAINS to * or a hostname wildcard, an authenticated user with migration rights starts a repository migration pointing at a URL that resolves to a reserved/link-local address such as http://169.254.169.254/. Because the local-network block list did not cover these ranges and the host was accepted on allow-list match alone (even with ALLOW_LOCALNETWORKS = false), the Gitea server issues the request and returns the response, exposing cloud-instance metadata or other internal services. No public exploit code was identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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's repository migration feature lets an authenticated user who is permitted to start migrations force the Gitea server to connect to reserved or link-local addresses, including the cloud metadata endpoint 169.254.169.254. The flaw only manifests in a non-default configuration where the administrator has set [migrations] ALLOWED_DOMAINS to a wildcard such as * or a hostname wildcard, which bypasses the intended ALLOW_LOCALNETWORKS = false protection because the local-network block list omitted reserved/link-local ranges and hostname allow-list matching was accepted irrespective of the resolved IP. Impact is bounded to reachability and read-style access from the server (no code execution or data modification), authentication is required per the CVSS vector (PR:L), and no public exploit has been identified at time of analysis, so this is a low-to-moderate priority issue whose real-world severity rises mainly where a reachable instance metadata service exists on the Gitea host.

RemediationAI

Vendor-released patch: upgrade to Gitea 28.0.0 (release tag v28.0.0, advisory GHSA-54w9-6cc5-9wj9, fix PR go-gitea/gitea#39426), which explicitly denies reserved/link-local and cloud metadata targets, applies address checks to resolved endpoints, and replaces ALLOWED_DOMAINS/BLOCKED_DOMAINS with ALLOWED_HOST_LIST/BLOCKED_HOST_LIST under an EGRESS_MODE setting. If upgrading immediately is not possible, remove the wildcard: set [migrations] ALLOWED_DOMAINS to the minimal explicit list of trusted public hosts (no * and no broad *.domain entries), keep ALLOW_LOCALNETWORKS = false, and add explicit BLOCKED_DOMAINS entries for the metadata and link-local space (169.254.169.254, 169.254.0.0/16, and the IPv6 equivalent fe80::/10) - accepting that this block list approach is fragile because it is string/range based and does not re-validate the resolved IP after DNS rebinding, so it should be paired with network-layer controls. Restrict who can create migrations/mirrors through repository and organization permissions so that only trusted accounts hold that privilege, since the attack requires an authenticated user with migration rights; note the trade-off that tightening these permissions may disrupt legitimate import workflows. Block outbound egress from the Gitea host to link-local and metadata ranges at the firewall or security group, and enforce IMDSv2 (or disable IMDS entirely) on cloud instances - this is the most durable compensating control and does not depend on Gitea's allow-list logic. Finally, be aware that if a proxy is configured for migrations or Git remotes, Gitea does not enforce these egress lists on the proxied target, so the proxy itself must be configured to deny internal, loopback, and link-local destinations; disabling the proxy for migrations is the alternative, at the cost of losing the proxy's own filtering.

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 vulnerability is CWE-918 (Server-Side Request Forgery) in Gitea's migration/mirroring subsystem, which performs outbound HTTP fetches against user-supplied repository URLs. Gitea layers several egress controls over these fetches: [migrations] ALLOWED_DOMAINS (an allow list that supports wildcards such as * and *.example.com) and BLOCKED_DOMAINS, plus ALLOW_LOCALNETWORKS (default false) intended to reject migration URLs that resolve to private, loopback, or otherwise internal addresses. The defect is twofold: the local-network deny list covered RFC 1918/RFC 1122 ranges but not reserved or link-local space such as 169.254.0.0/16 (the range containing the 169.254.169.254 cloud metadata address), and once a hostname matched the allow list it was accepted even if DNS resolution produced a blocked or reserved address, i.e. the address check was not applied to the resolved endpoint. The upstream fix (PR 39426, shipped in Gitea 28.0.0) reworks this whole area, renaming the options to ALLOWED_HOST_LIST/BLOCKED_HOST_LIST, introducing an EGRESS_MODE of lax (allow public, restrict private/loopback/CGNAT) or strict (require explicit allow of every address), adding per-entry port specifications and ranges, dot-anchored hostname matching so notexample.com cannot match example.com, requiring punycode for IDN names, and explicitly denying reserved addresses such as link-local and cloud metadata. Notably, the same change documents that when a proxy is configured for migrations or Git remotes, Gitea does not enforce the egress lists on the proxied target at all, leaving that to the proxy - a related exposure administrators should account for.

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

Network-reachable migration feature (AV:N), no special timing (AC:L), requires an authenticated user who can start migrations (PR:L), no victim interaction (UI:N); SSRF discloses limited data (C:L) with no integrity/availability impact.

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

Lifecycle Timeline

2
CVSS changed
Oct 07, 2026 - 12:22 NVD
4.3 (MEDIUM)
CVE Published
Oct 06, 2026 - 20:17 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

With [migrations] ALLOWED_DOMAINS set to a matching entry such as * or a hostname wildcard, Gitea's migration URL validation could permit reserved and link-local addresses, such as 169.254.169.254, even when ALLOW_LOCALNETWORKS = false. The local-network block list did not cover these ranges, and a hostname matching the allow list was accepted regardless of its resolved address. A user who can start migrations on such an instance could reach these addresses from the Gitea server; the default empty ALLOWED_DOMAINS configuration is not affected.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular self-hosted Git service, common but far from 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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