Skip to main content

Gitea CVE-2026-27657

| EUVDEUVD-2026-41632 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-07-03 Gitea GHSA-4c8f-3m6h-m56r
7.5
CVSS 3.1 · Vendor: Gitea
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with any Gitea account
  2. Delivery
    Enumerate victim email row ID (sequential integers)
  3. Exploit
    POST _method=PRIMARY with victim's email id
  4. Execution
    Server skips ownership check
  5. Impact
    Victim's primary email changed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitation requires an authenticated Gitea session (any registered low-privilege user) and reachability of the account settings endpoint /user/settings/account/email; the attacker submits the form parameter _method=PRIMARY with an 'id' referencing an email row owned by another user. What limits exploitation: the attacker must have a valid account (so instances with closed/admin-approved registration greatly restrict the attacker pool), must know or enumerate a target email row's integer ID (feasible because IDs are sequential), and the impact is confined to changing another user's primary email - no code execution, data disclosure, or availability loss. The published PR:N is contradicted by the code path and tests, which require login - treat this as an authenticated (PR:L) flaw despite the NVD vector.

Impact

The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N = 7.5) rates this as unauthenticated network integrity impact, but the vulnerable code path and the patch's integration test (loginUser 'user2') both require an authenticated session, so PR:N appears inaccurate - realistic exploitation needs any valid low-privilege account, i.e. PR:L. This lowers real-world severity somewhat from the 7.5 headline. Supporting signals are consistent and modest: EPSS is 0.17% (6th percentile), CISA SSVC records Exploitation=none, Automatable=yes, Technical Impact=partial, and there is no KEV listing and no public exploit. The Automatable=yes flag is credible given sequential integer email IDs and a simple POST, so an attacker with an account could enumerate/target victims cheaply, but confidentiality and availability are untouched (C:N/A:N) and impact is bounded to integrity of another user's email setting. Net: a legitimate medium-priority patch item, not an emergency - no active exploitation and low probability, but easy to exploit once authenticated.

Exploit ScenarioDerived

An attacker registers or uses an existing low-privilege Gitea account, then submits a POST to /user/settings/account/email with _method=PRIMARY and an 'id' value guessed or enumerated from the sequential email-address table that belongs to a victim account. On unpatched versions the server sets that victim-owned email as primary without an ownership check, altering the victim's account email of record. No public weaponized exploit is known, but the patch's own integration tests demonstrate the exact request, so building a proof-of-concept is trivial.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 22, 2026

Broken object-level authorization (IDOR) in Gitea before 1.25.5 lets an authenticated user manipulate the primary email address of an arbitrary other account by supplying an email row ID they do not own. The account-settings 'make primary' handler looked up the target email by ID alone without verifying ownership, so a logged-in attacker can alter another user's primary email - an integrity impact with account-hijack and notification-redirection potential. There is no public exploit or active exploitation, EPSS is low (0.17%), and Gitea has shipped a fix in 1.25.5.

RemediationAI

Vendor-released patch: upgrade to Gitea 1.25.5 or later, which adds owner-scoping (uid) to the primary-email query (fix commits in https://github.com/go-gitea/gitea/pull/36586 and https://github.com/go-gitea/gitea/pull/36607; release https://github.com/go-gitea/gitea/releases/tag/v1.25.5). If immediate upgrade is not possible, reduce exposure by disabling open self-registration (set service.DISABLE_REGISTRATION or require admin approval) to limit who can obtain an account and reach the vulnerable /user/settings/account/email endpoint, and by restricting network access to the Gitea instance to trusted users - note these controls only shrink the attacker pool and do not close the IDOR, so patching remains necessary. Monitor account-settings activity and audit unexpected primary-email changes as an interim detection measure.

Affected VersionsENISA

Gitea Open Source Git Server 0 <1.25.5

Affected Packages

go code.gitea.io/gitea fix: 1.25.5
euvd gitea_open_source_git_server fix: 1.25.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Gitea is a self-hosted, lightweight open-source Git service (cpe:2.3:a:gitea:gitea_open_source_git_server) written in Go. The root cause is CWE-639, Authorization Bypass Through User-Controlled Key: the web account handler EmailPost in routers/web/user/setting/account.go passed the attacker-controlled form field 'id' straight into user_model.MakeActiveEmailPrimary, and makeEmailPrimaryInternal in models/user/email_address.go queried the email row using only ID(emailID) with an is_activated filter - never scoping to the requesting user's UID. Because email row IDs are sequential integers, any authenticated user could reference another user's email record. The PR 36586 fix adds an ownerID (ctx.Doer.ID) parameter and constrains the query with builder.Eq{"uid": ownerID}, returning an 'email address could not be found' error when the row is not owned by the caller.

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 (Gitea) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 6.5 MEDIUM

Network-reachable web endpoint with low complexity, but the vulnerable code path and patch tests require a logged-in account so PR:L not PR:N; impact is integrity-only (another user's email) with no confidentiality or availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (Gitea).

CVSS VectorVendor: Gitea

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
CVE Published
Jul 03, 2026 - 20:19 cve.org
HIGH 7.5
CVE Published
Jul 03, 2026 - 20:19 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Gitea versions before 1.25.5 allow a user to change another user's primary email address.

Executive ViewAI

Why It Matters

Gitea instances before version 1.25.5 contain an authorization flaw allowing authenticated users to manipulate other users' primary email addresses, enabling account takeover and credential redirection. No public exploit has been identified; however, organizations running vulnerable Gitea deployments should prioritize immediate patching to prevent unauthorized account access.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular self-hosted Git server, common but not universally deployed
Threat Intel
1
1 sources
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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

Vendor StatusVendor

SUSE

Severity: Important

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