Skip to main content

Gitea EUVDEUVD-2026-103983

| CVE-2026-109553 HIGH
2026-10-18 Gitea
7.5
CVSS 3.1 · Vendor: Gitea
View

Attack ChainAIDerived

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

  1. Access
    Access Gitea instance trusting a user CA
  2. Exploit
    Register victim's public key as own principal
  3. Execution
    Authenticate via HTTP signature API or SSH
  4. Impact
    Impersonate victim, gain full account and repo control

Vulnerability Assessment

Exploitation Conditions

Exploitable ONLY when the Gitea instance is configured to trust a user certificate authority via SSH_TRUSTED_USER_CA_KEYS AND to accept arbitrary certificate principals via SSH_AUTHORIZED_PRINCIPALS_ALLOW=anything; instances that do not trust a user CA are explicitly not affected. The attacker must either be able to register a public key line as a principal (requiring a low-privilege account, consistent with PR:L) or hold a certificate signed by the trusted authority. Limiting factors: this trusted-CA-plus-permissive-principals combination is non-default and uncommon, no user interaction is needed, and affected versions are Gitea ≤28.1.0 (fixed in 28.2.0).

Impact

This is a genuine but highly conditional authentication-bypass/impersonation flaw rather than a broadly exploitable crisis. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, 7.5) correctly captures network reach, high attack complexity, and the requirement for low-privilege attacker access, with total C/I/A impact because successful exploitation lets an attacker authenticate AS another user. The exploitation signals strongly agree on LOW real-world urgency: EPSS is 0.10% (1st percentile), there is no CISA KEV listing, no public POC, and CISA SSVC scores Exploitation=none and Automatable=no - only Technical Impact=total is elevated, which reflects severity-if-exploited, not likelihood. The dominant risk-limiting factor is configuration: per the vendor advisory, instances are ONLY affected when they trust a user certificate authority (SSH_TRUSTED_USER_CA_KEYS) AND accept arbitrary principals (SSH_AUTHORIZED_PRINCIPALS_ALLOW=anything), a non-default and uncommon hardening-sensitive setup. No signals conflict, but note one labeling discrepancy: the input Tags call this 'Information Disclosure' whereas the mechanism is account impersonation/authentication bypass - the impact is unauthorized access as another user, not mere data leakage. Bottom line: a legitimately high-impact bug with a narrow precondition and near-zero observed exploitation - patch during normal maintenance unless the specific trusted-CA configuration is in use, in which case prioritize.

Exploit ScenarioDerived

On a Gitea instance configured to trust a user certificate authority and to accept arbitrary principals, a low-privileged attacker registers a victim's public key line as their own principal key (or presents a CA-signed certificate listing it). Because Gitea matched the certificate principal against ALL stored public keys rather than only principal-type keys, the attacker then authenticates as the victim through the HTTP signature API or the built-in SSH server, taking over the victim's account and repositories. No public exploit identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Oct 19, 2026

Authentication bypass and user impersonation in Gitea through 28.1.0 let an authenticated low-privilege attacker assume another user's identity when the instance trusts a user SSH certificate authority and allows arbitrary principals. The flaw is highly configuration-dependent: only deployments with SSH_TRUSTED_USER_CA_KEYS set and SSH_AUTHORIZED_PRINCIPALS_ALLOW=anything are exposed, and Gitea states instances that do not trust a user CA are unaffected. No public exploit has been identified at time of analysis; EPSS is 0.10% (1st percentile) and CISA SSVC records exploitation none and automatable no, while the vendor has released Gitea 28.2.0.

RemediationAI

Vendor-released patch: Gitea 28.2.0, referenced in GHSA-vcp6-2qc6-gvq3 and the release blog at https://blog.gitea.com/release-of-28.2.0/. If upgrading immediately is not possible, remove SSH_TRUSTED_USER_CA_KEYS so the instance no longer trusts a user certificate authority, or change SSH_AUTHORIZED_PRINCIPALS_ALLOW from anything to a restrictive value; both options break certificate/principal-based SSH access for users who depend on it and should be paired with auditing principal-type public keys for entries containing other users' key lines. The upstream fixes are in PRs https://github.com/go-gitea/gitea/pull/39839 and https://github.com/go-gitea/gitea/pull/39847, with the vendor advisory at https://github.com/go-gitea/gitea/security/advisories/GHSA-vcp6-2qc6-gvq3.

Affected VersionsENISA

Gitea 0 ≤28.1.0

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 SSH certificate handling resolves a certificate principal by calling SearchPrincipalKey, which in affected versions queries stored public-key content without restricting the row type to KeyTypePrincipal. As a result, a normal user public-key line can be matched as a principal, enabling key-type confusion in the HTTP signature API and built-in SSH server. Exploitation requires a non-default combination: a trusted user CA (SSH_TRUSTED_USER_CA_KEYS) plus permissive principal acceptance (SSH_AUTHORIZED_PRINCIPALS_ALLOW=anything); the attacker needs a low-privilege account or a certificate signed by the trusted CA. PR 39839 corrects the query by adding AND type = KeyTypePrincipal and adds a regression test confirming ordinary user keys are ignored. CPE cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:* covers the Gitea product; EUVD lists versions 0 through 28.1.0. No CWE was supplied, but the root cause is an authorization/key-type validation error in principal lookup rather than a memory-safety issue.

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

Network-reachable via SSH/HTTP API (AV:N); non-default trusted-CA config required (AC:H); attacker needs a low-privilege account or signed cert (PR:L); full impersonation yields C:H/I:H/A:H.

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

Primary rating from Vendor (Gitea).

CVSS VectorVendor: Gitea

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

Lifecycle Timeline

3
CVSS changed
Oct 19, 2026 - 21:24 NVD
7.5 (None) 7.5 (HIGH)
CVE Published
Oct 18, 2026 - 18:51 cve.org
HIGH 7.5
CVE Published
Oct 18, 2026 - 18:51 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Gitea resolved the principals of an SSH certificate by searching the content of all stored public keys instead of only principal keys. When Gitea trusts a user certificate authority (SSH_TRUSTED_USER_CA_KEYS) and accepts arbitrary principals (SSH_AUTHORIZED_PRINCIPALS_ALLOW=anything), a user could register another user's public key line as their own principal, or a holder of a certificate signed by that authority could list it, and then authenticate as the owner of that key through the HTTP signature API and the built-in SSH server. Instances that do not trust a user certificate authority are not affected.

Technical POC Analysis

The advisory records no vendor-assigned CWE.

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 deployments through 28.1.0 that trust a user SSH certificate authority and allow arbitrary principals can permit a low-privilege actor to impersonate other users, risking unauthorized access to repositories and workflows. The exposure is configuration-dependent and not universal, so leadership should prioritize identifying instances with SSH_TRUSTED_USER_CA_KEYS set and SSH_AUTHORIZED_PRINCIPALS_ALLOW=anything. No public exploit has been identified at time of analysis, and the vendor has released Gitea 28.2.0.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
popular self-hosted git service, common but not ubiquitous in enterprises
Data Quality
6 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 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
No
Human Impact
Medium
Technical Impact
Total

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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