@fedify/fedify 1.5.3 → 1.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +107 -0
- package/esm/deno.js +2 -2
- package/esm/federation/handler.js +15 -15
- package/esm/vocab/announce.yaml +3 -1
- package/esm/vocab/create.yaml +3 -1
- package/esm/vocab/delete.yaml +3 -1
- package/esm/vocab/question.yaml +3 -1
- package/esm/vocab/update.yaml +3 -1
- package/esm/vocab/vocab.js +196 -181
- package/package.json +1 -1
- package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/common.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/encoding.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/language.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/media_type.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/negotiation.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts.map +1 -1
- /package/esm/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/common.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/encoding.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/language.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/media_type.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/negotiation.js +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/common.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/encoding.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/language.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/_negotiation/media_type.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.16 → 1.0.20}/negotiation.d.ts +0 -0
package/CHANGES.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
Fedify changelog
|
|
4
4
|
================
|
|
5
5
|
|
|
6
|
+
Version 1.5.5
|
|
7
|
+
-------------
|
|
8
|
+
|
|
9
|
+
Released on August 8, 2025.
|
|
10
|
+
|
|
11
|
+
- Fixed a critical authentication bypass vulnerability in the inbox handler
|
|
12
|
+
that allowed unauthenticated attackers to impersonate any ActivityPub actor.
|
|
13
|
+
The vulnerability occurred because activities were processed before
|
|
14
|
+
verifying that the HTTP Signatures key belonged to the claimed actor.
|
|
15
|
+
Now authentication verification is performed before activity processing to
|
|
16
|
+
prevent actor impersonation attacks. [[CVE-2025-54888]]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Version 1.5.4
|
|
20
|
+
-------------
|
|
21
|
+
|
|
22
|
+
Released on June 30, 2025.
|
|
23
|
+
|
|
24
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
25
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
26
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
27
|
+
"@value":123}`).
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
Version 1.5.3
|
|
7
31
|
-------------
|
|
8
32
|
|
|
@@ -166,6 +190,30 @@ Released on March 28, 2025.
|
|
|
166
190
|
[multibase]: https://github.com/multiformats/js-multibase
|
|
167
191
|
|
|
168
192
|
|
|
193
|
+
Version 1.4.13
|
|
194
|
+
--------------
|
|
195
|
+
|
|
196
|
+
Released on August 8, 2025.
|
|
197
|
+
|
|
198
|
+
- Fixed a critical authentication bypass vulnerability in the inbox handler
|
|
199
|
+
that allowed unauthenticated attackers to impersonate any ActivityPub actor.
|
|
200
|
+
The vulnerability occurred because activities were processed before
|
|
201
|
+
verifying that the HTTP Signatures key belonged to the claimed actor.
|
|
202
|
+
Now authentication verification is performed before activity processing to
|
|
203
|
+
prevent actor impersonation attacks. [[CVE-2025-54888]]
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
Version 1.4.12
|
|
207
|
+
--------------
|
|
208
|
+
|
|
209
|
+
Released on June 30, 2025.
|
|
210
|
+
|
|
211
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
212
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
213
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
214
|
+
"@value":123}`).
|
|
215
|
+
|
|
216
|
+
|
|
169
217
|
Version 1.4.11
|
|
170
218
|
--------------
|
|
171
219
|
|
|
@@ -404,6 +452,32 @@ Released on February 5, 2025.
|
|
|
404
452
|
[#195]: https://github.com/fedify-dev/fedify/issues/195
|
|
405
453
|
|
|
406
454
|
|
|
455
|
+
Version 1.3.20
|
|
456
|
+
--------------
|
|
457
|
+
|
|
458
|
+
Released on August 8, 2025.
|
|
459
|
+
|
|
460
|
+
- Fixed a critical authentication bypass vulnerability in the inbox handler
|
|
461
|
+
that allowed unauthenticated attackers to impersonate any ActivityPub actor.
|
|
462
|
+
The vulnerability occurred because activities were processed before
|
|
463
|
+
verifying that the HTTP Signatures key belonged to the claimed actor.
|
|
464
|
+
Now authentication verification is performed before activity processing to
|
|
465
|
+
prevent actor impersonation attacks. [[CVE-2025-54888]]
|
|
466
|
+
|
|
467
|
+
[CVE-2025-54888]: https://github.com/fedify-dev/fedify/security/advisories/GHSA-6jcc-xgcr-q3h4
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
Version 1.3.19
|
|
471
|
+
--------------
|
|
472
|
+
|
|
473
|
+
Released on June 30, 2025.
|
|
474
|
+
|
|
475
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
476
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
477
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
478
|
+
"@value":123}`).
|
|
479
|
+
|
|
480
|
+
|
|
407
481
|
Version 1.3.18
|
|
408
482
|
--------------
|
|
409
483
|
|
|
@@ -758,6 +832,17 @@ Released on November 30, 2024.
|
|
|
758
832
|
[#193]: https://github.com/fedify-dev/fedify/issues/193
|
|
759
833
|
|
|
760
834
|
|
|
835
|
+
Version 1.2.23
|
|
836
|
+
--------------
|
|
837
|
+
|
|
838
|
+
Released on June 30, 2025.
|
|
839
|
+
|
|
840
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
841
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
842
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
843
|
+
"@value":123}`).
|
|
844
|
+
|
|
845
|
+
|
|
761
846
|
Version 1.2.22
|
|
762
847
|
--------------
|
|
763
848
|
|
|
@@ -1160,6 +1245,17 @@ Released on October 31, 2024.
|
|
|
1160
1245
|
[#118]: https://github.com/fedify-dev/fedify/issues/118
|
|
1161
1246
|
|
|
1162
1247
|
|
|
1248
|
+
Version 1.1.23
|
|
1249
|
+
--------------
|
|
1250
|
+
|
|
1251
|
+
Released on June 30, 2025.
|
|
1252
|
+
|
|
1253
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
1254
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
1255
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
1256
|
+
"@value":123}`).
|
|
1257
|
+
|
|
1258
|
+
|
|
1163
1259
|
Version 1.1.22
|
|
1164
1260
|
--------------
|
|
1165
1261
|
|
|
@@ -1603,6 +1699,17 @@ Released on October 20, 2024.
|
|
|
1603
1699
|
[#150]: https://github.com/fedify-dev/fedify/issues/150
|
|
1604
1700
|
|
|
1605
1701
|
|
|
1702
|
+
Version 1.0.26
|
|
1703
|
+
--------------
|
|
1704
|
+
|
|
1705
|
+
Released on June 30, 2025.
|
|
1706
|
+
|
|
1707
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
1708
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
1709
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
1710
|
+
"@value":123}`).
|
|
1711
|
+
|
|
1712
|
+
|
|
1606
1713
|
Version 1.0.25
|
|
1607
1714
|
--------------
|
|
1608
1715
|
|
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "@fedify/fedify",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./mod.ts",
|
|
@@ -26,7 +26,7 @@ export default {
|
|
|
26
26
|
"@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@^1.27.0",
|
|
27
27
|
"@phensley/language-tag": "npm:@phensley/language-tag@^1.9.0",
|
|
28
28
|
"@std/assert": "jsr:@std/assert@^0.226.0",
|
|
29
|
-
"@std/async": "jsr:@std/async
|
|
29
|
+
"@std/async": "jsr:@std/async@1.0.13",
|
|
30
30
|
"@std/bytes": "jsr:@std/bytes@^1.0.2",
|
|
31
31
|
"@std/collections": "jsr:@std/collections@^1.0.6",
|
|
32
32
|
"@std/encoding": "jsr:@std/encoding@1.0.7",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getLogger } from "@logtape/logtape";
|
|
2
2
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
3
|
-
import { accepts } from "../deps/jsr.io/@std/http/1.0.
|
|
3
|
+
import { accepts } from "../deps/jsr.io/@std/http/1.0.20/negotiation.js";
|
|
4
4
|
import metadata from "../deno.js";
|
|
5
5
|
import { verifyRequest } from "../sig/http.js";
|
|
6
6
|
import { detachSignature, verifyJsonLd } from "../sig/ld.js";
|
|
@@ -472,20 +472,6 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
|
|
|
472
472
|
span.setAttribute("activitypub.activity.id", activity.id.href);
|
|
473
473
|
}
|
|
474
474
|
span.setAttribute("activitypub.activity.type", getTypeId(activity).href);
|
|
475
|
-
const routeResult = await routeActivity({
|
|
476
|
-
context: ctx,
|
|
477
|
-
json,
|
|
478
|
-
activity,
|
|
479
|
-
recipient,
|
|
480
|
-
inboxListeners,
|
|
481
|
-
inboxContextFactory,
|
|
482
|
-
inboxErrorHandler,
|
|
483
|
-
kv,
|
|
484
|
-
kvPrefixes,
|
|
485
|
-
queue,
|
|
486
|
-
span,
|
|
487
|
-
tracerProvider,
|
|
488
|
-
});
|
|
489
475
|
if (httpSigKey != null && !await doesActorOwnKey(activity, httpSigKey, ctx)) {
|
|
490
476
|
logger.error("The signer ({keyId}) and the actor ({actorId}) do not match.", {
|
|
491
477
|
activity: json,
|
|
@@ -503,6 +489,20 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
|
|
|
503
489
|
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
|
504
490
|
});
|
|
505
491
|
}
|
|
492
|
+
const routeResult = await routeActivity({
|
|
493
|
+
context: ctx,
|
|
494
|
+
json,
|
|
495
|
+
activity,
|
|
496
|
+
recipient,
|
|
497
|
+
inboxListeners,
|
|
498
|
+
inboxContextFactory,
|
|
499
|
+
inboxErrorHandler,
|
|
500
|
+
kv,
|
|
501
|
+
kvPrefixes,
|
|
502
|
+
queue,
|
|
503
|
+
span,
|
|
504
|
+
tracerProvider,
|
|
505
|
+
});
|
|
506
506
|
if (routeResult === "alreadyProcessed") {
|
|
507
507
|
return new Response(`Activity <${activity.id}> has already been processed.`, {
|
|
508
508
|
status: 202,
|
package/esm/vocab/announce.yaml
CHANGED
|
@@ -16,7 +16,9 @@ defaultContext:
|
|
|
16
16
|
misskey: "https://misskey-hub.net/ns#"
|
|
17
17
|
fedibird: "http://fedibird.com/ns#"
|
|
18
18
|
sensitive: "as:sensitive"
|
|
19
|
-
votersCount:
|
|
19
|
+
votersCount:
|
|
20
|
+
"@id": "toot:votersCount"
|
|
21
|
+
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
|
|
20
22
|
Emoji: "toot:Emoji"
|
|
21
23
|
Hashtag: "as:Hashtag"
|
|
22
24
|
quoteUrl: "as:quoteUrl"
|
package/esm/vocab/create.yaml
CHANGED
|
@@ -13,7 +13,9 @@ defaultContext:
|
|
|
13
13
|
misskey: "https://misskey-hub.net/ns#"
|
|
14
14
|
fedibird: "http://fedibird.com/ns#"
|
|
15
15
|
sensitive: "as:sensitive"
|
|
16
|
-
votersCount:
|
|
16
|
+
votersCount:
|
|
17
|
+
"@id": "toot:votersCount"
|
|
18
|
+
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
|
|
17
19
|
Emoji: "toot:Emoji"
|
|
18
20
|
Hashtag: "as:Hashtag"
|
|
19
21
|
ChatMessage: "http://litepub.social/ns#ChatMessage"
|
package/esm/vocab/delete.yaml
CHANGED
|
@@ -15,7 +15,9 @@ defaultContext:
|
|
|
15
15
|
misskey: "https://misskey-hub.net/ns#"
|
|
16
16
|
fedibird: "http://fedibird.com/ns#"
|
|
17
17
|
sensitive: "as:sensitive"
|
|
18
|
-
votersCount:
|
|
18
|
+
votersCount:
|
|
19
|
+
"@id": "toot:votersCount"
|
|
20
|
+
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
|
|
19
21
|
Emoji: "toot:Emoji"
|
|
20
22
|
Hashtag: "as:Hashtag"
|
|
21
23
|
ChatMessage: "http://litepub.social/ns#ChatMessage"
|
package/esm/vocab/question.yaml
CHANGED
|
@@ -21,7 +21,9 @@ defaultContext:
|
|
|
21
21
|
misskey: "https://misskey-hub.net/ns#"
|
|
22
22
|
fedibird: "http://fedibird.com/ns#"
|
|
23
23
|
sensitive: "as:sensitive"
|
|
24
|
-
votersCount:
|
|
24
|
+
votersCount:
|
|
25
|
+
"@id": "toot:votersCount"
|
|
26
|
+
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
|
|
25
27
|
Emoji: "toot:Emoji"
|
|
26
28
|
Hashtag: "as:Hashtag"
|
|
27
29
|
quoteUrl: "as:quoteUrl"
|
package/esm/vocab/update.yaml
CHANGED
|
@@ -37,7 +37,9 @@ defaultContext:
|
|
|
37
37
|
suspended: "toot:suspended"
|
|
38
38
|
memorial: "toot:memorial"
|
|
39
39
|
indexable: "toot:indexable"
|
|
40
|
-
votersCount:
|
|
40
|
+
votersCount:
|
|
41
|
+
"@id": "toot:votersCount"
|
|
42
|
+
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
|
|
41
43
|
Emoji: "toot:Emoji"
|
|
42
44
|
Hashtag: "as:Hashtag"
|
|
43
45
|
schema: "http://schema.org#"
|