Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOperate valid ActivityPub actor and keypair
-
DeliveryTarget federation-enabled Forgejo instance
-
ExploitCraft activity JSON body naming victim actor as sender
-
ExecutionSign HTTP request with own valid key
-
PersistSubmit to Forgejo ActivityPub inbox endpoint
-
ImpactForgejo 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 |
| 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 |
| 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Attacker must control a valid ActivityPub actor (PR:L); spoofing-only impact yields I:L with no confidentiality or availability consequence.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
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
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
Remote code execution in Forgejo before 16.0.4 allows an authenticated user who can supply a template repository to run
Forgejo before 13.0.2 (and the 11 LTS line before 11.0.7) mishandles out-of-repository symlink destinations when generat
In Forgejo before 1.20.5-1, certain endpoints do not check whether an object belongs to a repository for which permissio
Forgejo before 1.20.5-1 allows 2FA bypass when docker login uses Basic Authentication. Rated high severity (CVSS 7.5), t
Unauthenticated blind server-side request forgery in Forgejo (through 15.0.11, 16.0.0 through 16.0.7, and 17.0.0 through
Forgejo's restore-repo CLI can be induced to read files outside the dump directory - including repository configuration
Server-side request forgery in Forgejo up to 15.0.4 allows authenticated users to bypass the repository migration IP all
Stored XSS in Forgejo before 15.0.3 allows authenticated users to execute arbitrary JavaScript in other users' browsers
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
Forgejo before 1.20.5-1 allows remote attackers to test for the existence of private user accounts by appending .rss (or
Restricted API token authorization bypass in Forgejo before 16.0.4 (and before 15.0.8 on the 15.x branch) allows authent
Same weakness CWE-348 – Use of Less Trusted Source
View allVendor StatusVendor
Debian
Bug #1058932| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| open | - | - |
EUVD-2026-76944
GHSA-5cjj-j77f-rq2g
NVD
CVE.org
EPSS
VulDB
Exploit-DB