Skip to main content

Forgejo EUVDEUVD-2026-76944

| CVE-2026-90679 MEDIUM
Use of Less Trusted Source (CWE-348)
2026-09-13 mitre GHSA-5cjj-j77f-rq2g
4.3
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Operate valid ActivityPub actor and keypair
  2. Delivery
    Target federation-enabled Forgejo instance
  3. Exploit
    Craft activity JSON body naming victim actor as sender
  4. Execution
    Sign HTTP request with own valid key
  5. Persist
    Submit to Forgejo ActivityPub inbox endpoint
  6. Impact
    Forgejo accepts activity attributed to spoofed victim identity

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V6 - Authentication IP-independent access control
Exploitation Conditions

Exploitation requires that the target Forgejo instance has [federation] ENABLED = true set in its configuration, which is not the default. The attacker must also control or have access to a server running a valid ActivityPub-compatible implementation capable of producing HTTP Signatures - this is the source of the 'low privilege' rating (PR:L). No user interaction on the victim instance is required. Exploitation is constrained to identity spoofing in federated activity attribution only; the CVE description explicitly states that account takeover and modification of repository content are not achievable. Instances without federation enabled are entirely outside the attack surface.

Impact

The CVSS 4.3 base score (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N) accurately reflects limited real-world impact: integrity-only, low severity, no confidentiality or availability consequence. The PR:L metric reflects that the attacker must operate or control a legitimate ActivityPub-compatible server to generate valid HTTP Signatures - a meaningful barrier above zero. No EPSS data is present in the input, no KEV listing exists, and no POC has been identified. Critically, the attack surface is gated by a non-default configuration flag; instances without [federation] ENABLED = true are entirely unaffected, substantially narrowing the real-world exposed population. The vendor-confirmed scope exclusion of account takeover and content modification further limits the operational impact. This is a genuine but low-priority issue - meaningful only on federation-enabled instances where activity attribution integrity matters.

Exploit ScenarioDerived

An attacker operates their own Forgejo or ActivityPub-compatible server, establishing a valid actor identity and cryptographic keypair. They craft an ActivityPub JSON activity body naming a victim actor on the target Forgejo instance as the sender, then sign the HTTP request using their own valid keypair. The target Forgejo validates the HTTP Signature successfully (it is cryptographically valid for the attacker's key), but then reads the actor identity from the attacker-supplied JSON body, recording the activity as if it originated from the named victim actor.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 – Sep 13, 2026

Identity spoofing in Forgejo's ActivityPub federation allows a remote attacker who controls any single valid ActivityPub actor and keypair to submit HTTP-Signature-valid activities falsely attributed to arbitrary actor identities on a target instance. Affected versions span 13.0.0 through 16.0.4, but only when federation is explicitly enabled via the non-default setting [federation] ENABLED = true. The vendor explicitly confirms this does not permit account takeover or content modification - impact is limited to false attribution of federated activities. No public exploit has been identified at time of analysis.

RemediationAI

No confirmed patched release version is present in the available data - the upstream reference points to an issue comment at https://codeberg.org/forgejo/forgejo/issues/14271#issuecomment-22548004 rather than a tagged release. Monitor that issue for a fix announcement and upgrade once a patched version is released. As an immediate and fully effective workaround, disable federation by setting [federation] ENABLED = false in the Forgejo app.ini configuration and restarting the service - this removes the attack surface entirely with no impact on standard Git repository hosting functionality. The trade-off is that cross-platform ActivityPub interactions (following users, starring repositories across instances) will cease. If federation must remain active, consider restricting network access to the ActivityPub inbox endpoints at the reverse proxy or firewall layer to limit which external servers can submit activities.

Affected VersionsENISA

Forgejo 13.0.0 ≤16.0.4

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 self-hosted Git forge and a fork of Gitea that implements the ActivityPub protocol for cross-platform social federation. The vulnerable component is routers/api/v1/activitypub/reqsignature.go, which validates incoming HTTP Signatures on ActivityPub requests. The root cause is CWE-348 (Use of Less Trusted Source): while the HTTP Signature validation cryptographically confirms the request was signed by a legitimate keypair, the inbox activity handlers subsequently read the acting identity (the 'actor' field) directly from the attacker-controlled JSON request body without binding that identity to the verified signing key. A second compounding flaw is that the signed Digest header is not recomputed against the received request body, allowing the body to diverge from what was originally signed. Together, these gaps break the chain of trust that ActivityPub's HTTP Signatures are intended to establish. The CPE cpe:2.3:a:forgejo:forgejo:*:*:*:*:*:*:*:* covers the full affected version 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 (mitre) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 4.3 MEDIUM

Attacker must control a valid ActivityPub actor (PR:L); spoofing-only impact yields I:L with no confidentiality or availability consequence.

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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

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

DescriptionCVE.org

Forgejo 13.0.0 through 16.0.4, when "[federation] ENABLED = true" is set, has a spoofing issue that affects identity integrity but does not allow account takeover or content modification. It does not verify that the HTTP Signature on an incoming ActivityPubactivity was produced by the key belonging to the actor named in the activity body. The signature verification in routers/api/v1/activitypub/reqsignature.go validates the request signature, but the inbox activity handlers subsequently read the acting identity from the attacker-controlled JSON body without binding it to the verified signing key. Additionally, the signed Digest header is not recomputed against the received request body. A remote attacker who hosts a single valid ActivityPub actor and keypair can therefore submit signature-valid activities attributed to any actor identity they name.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular self-hosted Git forge with growing open-source adoption
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
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

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
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-2026-119547 MEDIUM
5.3 Oct 30

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

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

Vendor StatusVendor

Debian

Bug #1058932
forgejo
Release Status Fixed Version Urgency
open - -

SUSE

Severity: Moderate

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