Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess Gitea instance trusting a user CA
-
ExploitRegister victim's public key as own principal
-
ExecutionAuthenticate via HTTP signature API or SSH
-
ImpactImpersonate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
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.
Primary rating from Vendor (Gitea).
CVSS VectorVendor: Gitea
Lifecycle Timeline
3DescriptionCVE.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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi
Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r
Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea
Authenticated command injection in Dokploy (self-hostable PaaS) versions 0.29.3 through 0.29.12 lets a low-privileged us
Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any
Path traversal in Gitea's Org-mode (`.org`) markup renderer allows an attacker who can get Org-mode content rendered by
Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec
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
Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica
Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran
EUVD-2026-103983
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB