@fedify/fedify 1.4.11 → 1.4.13
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 +83 -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.4.13
|
|
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.4.12
|
|
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.4.11
|
|
7
31
|
--------------
|
|
8
32
|
|
|
@@ -241,6 +265,32 @@ Released on February 5, 2025.
|
|
|
241
265
|
[#195]: https://github.com/fedify-dev/fedify/issues/195
|
|
242
266
|
|
|
243
267
|
|
|
268
|
+
Version 1.3.20
|
|
269
|
+
--------------
|
|
270
|
+
|
|
271
|
+
Released on August 8, 2025.
|
|
272
|
+
|
|
273
|
+
- Fixed a critical authentication bypass vulnerability in the inbox handler
|
|
274
|
+
that allowed unauthenticated attackers to impersonate any ActivityPub actor.
|
|
275
|
+
The vulnerability occurred because activities were processed before
|
|
276
|
+
verifying that the HTTP Signatures key belonged to the claimed actor.
|
|
277
|
+
Now authentication verification is performed before activity processing to
|
|
278
|
+
prevent actor impersonation attacks. [[CVE-2025-54888]]
|
|
279
|
+
|
|
280
|
+
[CVE-2025-54888]: https://github.com/fedify-dev/fedify/security/advisories/GHSA-6jcc-xgcr-q3h4
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
Version 1.3.19
|
|
284
|
+
--------------
|
|
285
|
+
|
|
286
|
+
Released on June 30, 2025.
|
|
287
|
+
|
|
288
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
289
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
290
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
291
|
+
"@value":123}`).
|
|
292
|
+
|
|
293
|
+
|
|
244
294
|
Version 1.3.18
|
|
245
295
|
--------------
|
|
246
296
|
|
|
@@ -595,6 +645,17 @@ Released on November 30, 2024.
|
|
|
595
645
|
[#193]: https://github.com/fedify-dev/fedify/issues/193
|
|
596
646
|
|
|
597
647
|
|
|
648
|
+
Version 1.2.23
|
|
649
|
+
--------------
|
|
650
|
+
|
|
651
|
+
Released on June 30, 2025.
|
|
652
|
+
|
|
653
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
654
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
655
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
656
|
+
"@value":123}`).
|
|
657
|
+
|
|
658
|
+
|
|
598
659
|
Version 1.2.22
|
|
599
660
|
--------------
|
|
600
661
|
|
|
@@ -997,6 +1058,17 @@ Released on October 31, 2024.
|
|
|
997
1058
|
[#118]: https://github.com/fedify-dev/fedify/issues/118
|
|
998
1059
|
|
|
999
1060
|
|
|
1061
|
+
Version 1.1.23
|
|
1062
|
+
--------------
|
|
1063
|
+
|
|
1064
|
+
Released on June 30, 2025.
|
|
1065
|
+
|
|
1066
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
1067
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
1068
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
1069
|
+
"@value":123}`).
|
|
1070
|
+
|
|
1071
|
+
|
|
1000
1072
|
Version 1.1.22
|
|
1001
1073
|
--------------
|
|
1002
1074
|
|
|
@@ -1440,6 +1512,17 @@ Released on October 20, 2024.
|
|
|
1440
1512
|
[#150]: https://github.com/fedify-dev/fedify/issues/150
|
|
1441
1513
|
|
|
1442
1514
|
|
|
1515
|
+
Version 1.0.26
|
|
1516
|
+
--------------
|
|
1517
|
+
|
|
1518
|
+
Released on June 30, 2025.
|
|
1519
|
+
|
|
1520
|
+
- Fixed JSON-LD serialization of the `Question.voters` property to correctly
|
|
1521
|
+
serialize as a plain number (e.g., `"votersCount": 123`) instead of as a
|
|
1522
|
+
typed literal object (e.g., `"votersCount":{"type":"xsd:nonNegativeInteger",
|
|
1523
|
+
"@value":123}`).
|
|
1524
|
+
|
|
1525
|
+
|
|
1443
1526
|
Version 1.0.25
|
|
1444
1527
|
--------------
|
|
1445
1528
|
|
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "@fedify/fedify",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./mod.ts",
|
|
@@ -38,7 +38,7 @@ export default {
|
|
|
38
38
|
"@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@^1.27.0",
|
|
39
39
|
"@phensley/language-tag": "npm:@phensley/language-tag@^1.9.0",
|
|
40
40
|
"@std/assert": "jsr:@std/assert@^0.226.0",
|
|
41
|
-
"@std/async": "jsr:@std/async
|
|
41
|
+
"@std/async": "jsr:@std/async@1.0.13",
|
|
42
42
|
"@std/bytes": "jsr:@std/bytes@^1.0.2",
|
|
43
43
|
"@std/collections": "jsr:@std/collections@^1.0.6",
|
|
44
44
|
"@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";
|
|
@@ -418,20 +418,6 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
|
|
|
418
418
|
span.setAttribute("activitypub.activity.id", activity.id.href);
|
|
419
419
|
}
|
|
420
420
|
span.setAttribute("activitypub.activity.type", getTypeId(activity).href);
|
|
421
|
-
const routeResult = await routeActivity({
|
|
422
|
-
context: ctx,
|
|
423
|
-
json,
|
|
424
|
-
activity,
|
|
425
|
-
recipient,
|
|
426
|
-
inboxListeners,
|
|
427
|
-
inboxContextFactory,
|
|
428
|
-
inboxErrorHandler,
|
|
429
|
-
kv,
|
|
430
|
-
kvPrefixes,
|
|
431
|
-
queue,
|
|
432
|
-
span,
|
|
433
|
-
tracerProvider,
|
|
434
|
-
});
|
|
435
421
|
if (httpSigKey != null && !await doesActorOwnKey(activity, httpSigKey, ctx)) {
|
|
436
422
|
logger.error("The signer ({keyId}) and the actor ({actorId}) do not match.", {
|
|
437
423
|
activity: json,
|
|
@@ -449,6 +435,20 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
|
|
|
449
435
|
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
|
450
436
|
});
|
|
451
437
|
}
|
|
438
|
+
const routeResult = await routeActivity({
|
|
439
|
+
context: ctx,
|
|
440
|
+
json,
|
|
441
|
+
activity,
|
|
442
|
+
recipient,
|
|
443
|
+
inboxListeners,
|
|
444
|
+
inboxContextFactory,
|
|
445
|
+
inboxErrorHandler,
|
|
446
|
+
kv,
|
|
447
|
+
kvPrefixes,
|
|
448
|
+
queue,
|
|
449
|
+
span,
|
|
450
|
+
tracerProvider,
|
|
451
|
+
});
|
|
452
452
|
if (routeResult === "alreadyProcessed") {
|
|
453
453
|
return new Response(`Activity <${activity.id}> has already been processed.`, {
|
|
454
454
|
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#"
|