Skip to content

Commit c2b5e63

Browse files
authored
Merge commit from fork
Harden JSON-LD signature handling
2 parents aab002d + f6c1e55 commit c2b5e63

12 files changed

Lines changed: 6365 additions & 250 deletions

File tree

CHANGES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ Version 1.9.11
88

99
To be released.
1010

11+
### @fedify/fedify
12+
13+
- Fixed a security vulnerability in Linked Data Signature verification that
14+
could allow certain signed activities to be interpreted differently than
15+
intended. [[CVE-2026-42462]]
16+
17+
[CVE-2026-42462]: https://github.com/fedify-dev/fedify/security/advisories/GHSA-9rfg-v8g9-9367
18+
1119

1220
Version 1.9.10
1321
--------------

packages/fedify/src/federation/context.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -585,9 +585,12 @@ export interface InboxContext<TContextData> extends Context<TContextData> {
585585
* Forwards a received activity to the recipients' inboxes. The forwarded
586586
* activity will be signed in HTTP Signatures by the forwarder, but its
587587
* payload will not be modified, i.e., Linked Data Signatures and Object
588-
* Integrity Proofs will not be added. Therefore, if the activity is not
589-
* signed (i.e., it has neither Linked Data Signatures nor Object Integrity
590-
* Proofs), the recipient probably will not trust the activity.
588+
* Integrity Proofs will not be added. Even when Fedify internally
589+
* normalizes a Linked Data Signature activity for parsing, this method still
590+
* forwards the original received payload so the sender's signatures/proofs
591+
* are preserved as-is. Therefore, if the activity is not signed (i.e., it
592+
* has neither Linked Data Signatures nor Object Integrity Proofs), the
593+
* recipient probably will not trust the activity.
591594
* @param forwarder The forwarder's identifier or the forwarder's username
592595
* or the forwarder's key pair(s).
593596
* @param recipients The recipients of the activity.
@@ -609,9 +612,12 @@ export interface InboxContext<TContextData> extends Context<TContextData> {
609612
* Forwards a received activity to the recipients' inboxes. The forwarded
610613
* activity will be signed in HTTP Signatures by the forwarder, but its
611614
* payload will not be modified, i.e., Linked Data Signatures and Object
612-
* Integrity Proofs will not be added. Therefore, if the activity is not
613-
* signed (i.e., it has neither Linked Data Signatures nor Object Integrity
614-
* Proofs), the recipient probably will not trust the activity.
615+
* Integrity Proofs will not be added. Even when Fedify internally
616+
* normalizes a Linked Data Signature activity for parsing, this method still
617+
* forwards the original received payload so the sender's signatures/proofs
618+
* are preserved as-is. Therefore, if the activity is not signed (i.e., it
619+
* has neither Linked Data Signatures nor Object Integrity Proofs), the
620+
* recipient probably will not trust the activity.
615621
* @param forwarder The forwarder's identifier or the forwarder's username.
616622
* @param recipients In this case, it must be `"followers"`.
617623
* @param options Options for forwarding the activity.

0 commit comments

Comments
 (0)