Skip to main content

Gitea CVE-2026-101027

| EUVDEUVD-2026-93908 HIGH
Origin Validation Error (CWE-346)
2026-10-06 88ee5874-cf24-4952-aea0-31affedb7ff2
7.7
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. Exploit
    Point allow-listed hostname DNS at loopback/private IP
  3. Execution
    Start repository migration to that host
  4. Impact
    Reach internal services via SSRF

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

Requires all of: (1) the optional [migrations] ALLOWED_DOMAINS allow-list is configured - the description states instances without it are not affected; (2) ALLOW_LOCALNETWORKS=false (the control being bypassed); (3) an authenticated account with permission to start repository migrations (CVSS PR:L); and (4) attacker control over the DNS resolution of a hostname already present in ALLOWED_DOMAINS, so it can be pointed at loopback or private addresses. Limiting factors that reduce realistic risk: the allow-list feature is not enabled by default, exploitation needs valid credentials with migration rights, and the attacker must control authoritative DNS for an allow-listed name - none of which apply to a default installation.

Impact

This is a server-side request forgery / network-restriction bypass in Gitea, not an authentication bypass as the input tag suggests. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N, 7.7 HIGH) is network-reachable but explicitly authenticated (PR:L): the attacker must already have an account permitted to start repository migrations. The scope change (S:C) and C:H correctly reflect that successful exploitation pivots from Gitea into separate internal systems. Real-world risk is materially lower than the raw 7.7 implies because exploitation is gated behind two conditions the attacker does not fully control: the instance must have the optional [migrations] ALLOWED_DOMAINS allow-list configured (the description states instances without it are not affected), and the attacker must control DNS for a hostname already on that allow-list. No EPSS score, KEV listing, or public POC is present in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. I assess AC:H rather than the input's AC:L, since requiring an allow-listed hostname under attacker DNS control is a condition beyond the attacker's control and not present in default deployments. CWE is listed as N/A in the input but this is functionally CWE-918 (SSRF) via a TOCTOU/DNS-rebinding allow-list gap. Net: a credible internal-pivot risk for the subset of instances using ALLOWED_DOMAINS, but a configuration-dependent, authenticated issue rather than a mass-exploitable unauthenticated flaw.

Exploit ScenarioDerived

An authenticated Gitea user with migration privileges, on an instance configured with [migrations] ALLOWED_DOMAINS, sets DNS for a hostname on the allow-list to resolve to 127.0.0.1 or an RFC1918 address. They start a repository migration against that hostname; Gitea accepts it on name match without re-checking the resolved address, so the outbound request reaches internal services despite ALLOW_LOCALNETWORKS=false. No public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% 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 allows an authenticated user with permission to start repository migrations to reach internal services by pointing an allow-listed migration hostname at a loopback or private address, bypassing the ALLOW_LOCALNETWORKS=false restriction. Exploitation requires the optional [migrations] ALLOWED_DOMAINS allow-list to be configured (default installations are unaffected by this specific bypass), valid migration rights (CVSS PR:L, authenticated), and attacker control over DNS resolution for a hostname already present in that allow-list. No public exploit code or confirmed active exploitation was identified at time of analysis; the root-cause class is network-restriction bypass (SSRF-style) rather than an authentication bypass, despite that tag in the source data.

RemediationAI

Vendor-released patch: upgrade to Gitea 28.0.0 (or later), which replaces ALLOW_LOCALNETWORKS/ALLOWED_DOMAINS/BLOCKED_DOMAINS with ALLOWED_HOST_LIST and BLOCKED_HOST_LIST plus an EGRESS_MODE setting - see GHSA-fqjr-23c8-gg9m, https://github.com/go-gitea/gitea/pull/39426 and the release notes at https://github.com/go-gitea/gitea/releases/tag/v28.0.0. Where upgrading immediately is not possible, the most effective compensating control is to remove the [migrations] ALLOWED_DOMAINS entry entirely so the private/loopback block is applied unconditionally to every migration URL; the trade-off is that blank means all hosts are allowed, so arbitrary public hosts become reachable for migrations (private and loopback targets stay blocked). Alternatively, if the allow-list must be kept, restrict it to names whose DNS you fully control and pin/serve those names from an internal resolver that cannot be re-pointed at private space, and block DNS rebinding via short-TTL/internal-only resolution. Because the attacker must already be able to start repository migrations, tightening the organization/team permission that grants migration rights (repository import/creation) narrows the exposure to trusted users only. Finally, treat the Gitea host as untrusted for egress: firewall or egress-proxy outbound traffic from the Gitea server so it cannot reach loopback-adjacent management interfaces, RFC1918 ranges, or cloud metadata endpoints (169.254.0.0/16), and be aware that the upstream 28.0.0 fix explicitly does not enforce egress lists on requests routed through a configured HTTP/SOCKS proxy - in that deployment the proxy configuration must carry the restriction itself.

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

Gitea's repository-migration feature fetches remote repositories over HTTP/Git, and the [migrations] ALLOWED_DOMAINS allow-list was intended to constrain which hosts can be contacted. The vulnerability is a resolution/validation ordering flaw: when a migration URL's hostname string matched ALLOWED_DOMAINS, Gitea accepted it without re-checking the address(es) the name resolved to, so the ALLOW_LOCALNETWORKS=false guard - which is supposed to reject any migration URL resolving to loopback or RFC 1918/RFC 1122/RFC 4632/RFC 4291 private space - could be skipped. Anyone who controls authoritative DNS for an allow-listed hostname (or can exploit a DNS-rebinding window) can therefore make that name resolve to 127.0.0.1, an RFC1918 address, or an internal service address, causing the Gitea server itself to issue requests into the internal network. This is a classic SSRF / CWE-918 pattern (no CWE is assigned in the supplied data), with scope change (S:C) because the vulnerable component's privileges are used to reach resources outside its security authority, and confidentiality impact only (C:H/I:N/A:N) since responses can be read but not modified through this path. The upstream fix in Gitea 28.0.0 (PR #39426, GHSA-fqjr-23c8-gg9m) reworks the model entirely, replacing ALLOW_LOCALNETWORKS, ALLOWED_DOMAINS and BLOCKED_DOMAINS with ALLOWED_HOST_LIST and BLOCKED_HOST_LIST plus an EGRESS_MODE of lax or strict, with dot-anchored host matching, CIDR/port specifications, and built-in loopback/private/CGNAT/reserved-address denials; the diff also documents a deliberate caveat that when an HTTP/SOCKS proxy is configured, Gitea does not enforce the egress lists on the proxied target and the proxy is expected to do so.

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

AV:N and PR:L since an authenticated migration user acts over the network; AC:H because it requires a non-default allow-list plus an allow-listed hostname under attacker DNS control; S:C/C:H as SSRF reaches separate internal systems.

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

Lifecycle Timeline

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

DescriptionCVE.org

When [migrations] ALLOWED_DOMAINS was configured, a hostname matching the allow list was accepted without checking its resolved address against the local-network restrictions. A user who can start repository migrations and control the DNS of an allowed hostname could make it resolve to loopback or private addresses and bypass ALLOW_LOCALNETWORKS = false, reaching internal services from the Gitea server. Instances without ALLOWED_DOMAINS configured are not affected by this specific bypass.

Technical POC Analysis

Bug class: server-side request forgery (CWE-918).

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 allows an authenticated user with repository migration rights to reach internal network services when the optional migration domain allow-list is configured. This could expose sensitive internal systems or data to a user who already has migration permissions, affecting organizations that rely on Gitea for code collaboration and have that non-default configuration enabled. No public exploit identified at time of analysis, and no vendor-released patch is currently available, so leadership should prioritize interim controls and upgrade planning.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include disabling or tightly restricting [migrations] ALLOWED_DOMAINS, removing unnecessary migration rights, blocking Gitea server egress to loopback/private/link-local ranges, pinning DNS or monitoring for allow-listed hostname resolution changes, and reviewing logs for unauthorized internal service access.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Medium
popular self-hosted Git service, common in dev/CI environments but not 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.2%
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

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