Skip to main content

Forgejo CVE-2026-119547

| EUVDEUVD-2026-113812 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-30 VulnCheck GHSA-5fqg-pfrh-8fj8
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid read:user token or session
  2. Exploit
    Request GetPublicKey API with sequential key IDs
  3. Execution
    Enumerate across all key IDs
  4. Impact
    Harvest other users' SSH/deploy/principal key material

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

Requires an authenticated account on the target Forgejo instance holding a read:user-scoped API token or an active session (PR:L) - this is the primary limiting factor; exploitation is not possible unauthenticated. Given such access, no further special configuration is needed: the GetPublicKey API handler (routers/api/v1/user/key.go) omits an ownership check on key lookups against default configurations, so an attacker simply enumerates sequential numeric key IDs to read other users' SSH, deploy, and principal key titles, fingerprints, and public key material. Realistic exposure is amplified where self-service registration is enabled (any low-privilege user qualifies) and reduced on closed instances where tokens are tightly controlled. No user interaction is required. Affected: Forgejo through 15.0.11, 16.0.0-16.0.7, and 17.0.0-17.0.1.

Impact

This is a genuine but moderate-priority authorization flaw (IDOR / CWE-639), not a high-CVSS-but-low-risk artifact. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L) scores 5.3 and is internally consistent with the description: network-reachable API, low attack complexity, and crucially PR:L - the attacker must already hold a valid account or read:user token on the target instance, which meaningfully narrows the threat population versus a PR:N bug. Impact is confined to confidentiality (VC:L; VI:N/VA:N), matching an information-disclosure outcome with no integrity or availability effect. The vuln.today decision label is 'this_month', i.e. prioritized but explicitly not act_now/emergency. No CISA KEV listing and no EPSS score were supplied, so there is no signal of active or widespread exploitation; absence of these is not evidence of safety but should not be read as confirmed exploitation either. A public research reference (abraxaslabs.tech forgejo-keys-idor) and a VulnCheck advisory exist, so the mechanism is publicly documented and the barrier to writing an exploit is low (sequential ID enumeration), but the input does not confirm packaged working exploit code. Net: a real, easily-automatable post-authentication reconnaissance issue worth patching on a normal cycle, not a drop-everything emergency, given the authentication requirement and low-sensitivity data class.

Exploit ScenarioDerived

An authenticated low-privilege user on a Forgejo instance (or anyone able to self-register where registration is open) issues their read:user token against the GetPublicKey API endpoint and iterates sequential key IDs. Because the handler performs no ownership check, each request returns another user's key title, fingerprint, and public key material, letting the attacker harvest the full key inventory of every user, deploy key, and principal key on the server. A public research write-up documents the flaw; given AV:N/AC:L the enumeration is trivially scriptable, though a valid account/token (PR:L) is required.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 30, 2026

Forgejo through 15.0.11, 16.0.0 through 16.0.7, and 17.0.0 through 17.0.1 lets an authenticated user with a read:user-scoped API token or an active session retrieve other users' SSH, deploy, and principal key titles, fingerprints, and public key material through the GetPublicKey API. The handler omits an ownership check, so sequential numeric key IDs can be enumerated; this is an authenticated IDOR (CWE-639) rated CVSS 5.3 with confidentiality-only impact and no integrity or availability effect. A public research write-up is referenced, but working exploit code is not confirmed in the provided data, and exploitation requires a valid low-privilege account.

RemediationAI

The provided data does not list a fixed release version, so no exact patched version can be cited; the source references point to vulnerable code at tag v17.0.1, not to a published fix. Until a vendor update is applied, restrict access to the GetPublicKey API endpoint, typically /api/v1/user/keys/{id}, to trusted clients or networks through reverse-proxy rules, and revoke or avoid issuing read:user-scoped API tokens to untrusted users; this can break legitimate API integrations and does not address session-based access unless all access to the endpoint is filtered. Disabling self-service registration reduces the pool of low-privilege authenticated accounts that can exploit the IDOR, with the trade-off of blocking new user onboarding. Monitor and audit key-lookup requests for sequential ID enumeration, and review the VulnCheck advisory at https://www.vulncheck.com/advisories/forgejo-through-15.0.11-16.0.7-and-17.0.1-information-disclosure-via-api-v1-user-keys-id and the research write-up at https://abraxaslabs.tech/research/forgejo-keys-idor for updated fix information.

Affected VersionsENISA

Forgejo 17.0.0 ≤17.0.1
Forgejo 16.0.0 ≤16.0.7
Forgejo 0 ≤15.0.11

Affected Packages

euvd forgejo 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

Forgejo is a Go-based self-hosted Git forge. The flaw is in the GetPublicKey API handler in routers/api/v1/user/key.go, which looks up keys by numeric identifier in models/asymkey/ssh_key.go without confirming that the requesting account owns the key or is authorized to view it. This is CWE-639, authorization bypass through user-controlled key, an IDOR class issue: authenticated users with read:user scope or a session can iterate sequential IDs and obtain key title, fingerprint, and public key material for SSH, deploy, and principal keys. The CPE cpe:2.3:a:forgejo:forgejo:*:*:*:*:*:*:*:* identifies Forgejo as the affected product, and the CVSS 4.0 vector with the independent CVSS 3.1 assessment both show network reachability, low privileges required, no user interaction, and confidentiality-only impact with no integrity or availability effect. The cited code references point to the handler and model code at tag v17.0.1, which is within the affected range.

Know when Forgejo 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 (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network API reachable with low complexity, but a read:user token/account is required so PR:L not PR:N; only low-sensitivity key metadata is disclosed (C:L) with no integrity or 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 (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Forgejo through 15.0.11, 16.0.0 through 16.0.7, and 17.0.0 through 17.0.1 contains an information disclosure vulnerability in the GetPublicKey API handler that lacks an ownership check on key lookups. Authenticated users with a read:user token or session can enumerate sequential key IDs to obtain titles, fingerprints and public key material of other users' SSH, deploy and principal keys.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Low
self-hosted open-source Git forge, modest niche deployment footprint
Data Quality
3 sources
Confidence: Low

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.3%
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

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

CVE-2026-89094 CRITICAL
9.9 Sep 10

Remote code execution in Forgejo before 16.0.4 allows an authenticated user who can supply a template repository to run

CVE-2025-68937 CRITICAL
9.5 Dec 26

Forgejo before 13.0.2 (and the 11 LTS line before 11.0.7) mishandles out-of-repository symlink destinations when generat

CVE-2023-49946 CRITICAL
9.1 Dec 03

In Forgejo before 1.20.5-1, certain endpoints do not check whether an object belongs to a repository for which permissio

CVE-2023-49947 HIGH
7.5 Dec 03

Forgejo before 1.20.5-1 allows 2FA bypass when docker login uses Basic Authentication. Rated high severity (CVSS 7.5), t

CVE-2026-119545 MEDIUM
6.9 Oct 30

Unauthenticated blind server-side request forgery in Forgejo (through 15.0.11, 16.0.0 through 16.0.7, and 17.0.0 through

CVE-2026-119546 MEDIUM
6.8 Oct 30

Forgejo's restore-repo CLI can be induced to read files outside the dump directory - including repository configuration

CVE-2026-82556 LOW POC
2.1 Aug 30

Server-side request forgery in Forgejo up to 15.0.4 allows authenticated users to bypass the repository migration IP all

CVE-2026-59102 LOW POC
2.1 Jul 02

Stored XSS in Forgejo before 15.0.3 allows authenticated users to execute arbitrary JavaScript in other users' browsers

CVE-2023-49948 MEDIUM
5.3 Dec 03

Forgejo before 1.20.5-1 allows remote attackers to test for the existence of private user accounts by appending .rss (or

CVE-2026-90679 MEDIUM
4.3 Sep 13

Identity spoofing in Forgejo's ActivityPub federation allows a remote attacker who controls any single valid ActivityPub

CVE-2026-89151 LOW
3.5 Sep 11

Restricted API token authorization bypass in Forgejo before 16.0.4 (and before 15.0.8 on the 15.x branch) allows authent

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