@fedify/fedify 0.12.0-dev.278 → 0.12.0-dev.282
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGES.md +45 -0
- package/esm/runtime/key.js +1 -1
- package/esm/runtime/url.js +9 -5
- package/esm/sig/http.js +1 -1
- package/package.json +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/concat.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/copy.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/ends_with.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/equals.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/includes_needle.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/index_of_needle.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/last_index_of_needle.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/mod.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/repeat.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/starts_with.d.ts.map +1 -1
- package/types/runtime/url.d.ts.map +1 -1
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/concat.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/copy.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/ends_with.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/equals.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/includes_needle.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/index_of_needle.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/last_index_of_needle.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/mod.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/repeat.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/starts_with.js +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/concat.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/copy.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/ends_with.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/equals.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/includes_needle.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/index_of_needle.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/last_index_of_needle.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/mod.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/repeat.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.1 → 1.0.2}/starts_with.d.ts +0 -0
package/CHANGES.md
CHANGED
@@ -99,6 +99,21 @@ To be released.
|
|
99
99
|
[#92]: https://github.com/dahlia/fedify/pull/92
|
100
100
|
|
101
101
|
|
102
|
+
Version 0.11.2
|
103
|
+
--------------
|
104
|
+
|
105
|
+
Released on July 9, 2024.
|
106
|
+
|
107
|
+
- Fixed a vulnerability of SSRF via DNS rebinding in the built-in document
|
108
|
+
loader. [[CVE-2024-39687]]
|
109
|
+
|
110
|
+
- The `fetchDocumentLoader()` function now throws an error when the given
|
111
|
+
domain name has any records referring to a private network address.
|
112
|
+
- The `getAuthenticatedDocumentLoader()` function now returns a document
|
113
|
+
loader that throws an error when the given domain name has any records
|
114
|
+
referring to a private network address.
|
115
|
+
|
116
|
+
|
102
117
|
Version 0.11.1
|
103
118
|
--------------
|
104
119
|
|
@@ -297,6 +312,21 @@ Released on June 29, 2024.
|
|
297
312
|
[#80]: https://github.com/dahlia/fedify/pull/80
|
298
313
|
|
299
314
|
|
315
|
+
Version 0.10.2
|
316
|
+
--------------
|
317
|
+
|
318
|
+
Released on July 9, 2024.
|
319
|
+
|
320
|
+
- Fixed a vulnerability of SSRF via DNS rebinding in the built-in document
|
321
|
+
loader. [[CVE-2024-39687]]
|
322
|
+
|
323
|
+
- The `fetchDocumentLoader()` function now throws an error when the given
|
324
|
+
domain name has any records referring to a private network address.
|
325
|
+
- The `getAuthenticatedDocumentLoader()` function now returns a document
|
326
|
+
loader that throws an error when the given domain name has any records
|
327
|
+
referring to a private network address.
|
328
|
+
|
329
|
+
|
300
330
|
Version 0.10.1
|
301
331
|
--------------
|
302
332
|
|
@@ -473,6 +503,21 @@ is now distributed under the [MIT License] to encourage wider adoption.
|
|
473
503
|
[x-forwarded-fetch]: https://github.com/dahlia/x-forwarded-fetch
|
474
504
|
|
475
505
|
|
506
|
+
Version 0.9.3
|
507
|
+
-------------
|
508
|
+
|
509
|
+
Released on July 9, 2024.
|
510
|
+
|
511
|
+
- Fixed a vulnerability of SSRF via DNS rebinding in the built-in document
|
512
|
+
loader. [[CVE-2024-39687]]
|
513
|
+
|
514
|
+
- The `fetchDocumentLoader()` function now throws an error when the given
|
515
|
+
domain name has any records referring to a private network address.
|
516
|
+
- The `getAuthenticatedDocumentLoader()` function now returns a document
|
517
|
+
loader that throws an error when the given domain name has any records
|
518
|
+
referring to a private network address.
|
519
|
+
|
520
|
+
|
476
521
|
Version 0.9.2
|
477
522
|
-------------
|
478
523
|
|
package/esm/runtime/key.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
2
|
import { createPublicKey } from "node:crypto";
|
3
|
-
import { concat } from "../deps/jsr.io/@std/bytes/1.0.
|
3
|
+
import { concat } from "../deps/jsr.io/@std/bytes/1.0.2/concat.js";
|
4
4
|
import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/0.224.3/base64.js";
|
5
5
|
import { decodeBase64Url } from "../deps/jsr.io/@std/encoding/0.224.3/base64url.js";
|
6
6
|
import { decodeHex } from "../deps/jsr.io/@std/encoding/0.224.3/hex.js";
|
package/esm/runtime/url.js
CHANGED
@@ -30,11 +30,15 @@ export async function validatePublicUrl(url) {
|
|
30
30
|
if (netPermission.state !== "granted")
|
31
31
|
return;
|
32
32
|
}
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
// To prevent SSRF via DNS rebinding, we need to resolve all IP addresses
|
34
|
+
// and ensure that they are all public:
|
35
|
+
const addresses = await lookup(hostname, { all: true });
|
36
|
+
for (const { address, family } of addresses) {
|
37
|
+
if (family === 4 && !isValidPublicIPv4Address(address) ||
|
38
|
+
family === 6 && !isValidPublicIPv6Address(address) ||
|
39
|
+
family < 4 || family === 5 || family > 6) {
|
40
|
+
throw new UrlError(`Invalid or private address: ${address}`);
|
41
|
+
}
|
38
42
|
}
|
39
43
|
}
|
40
44
|
export function isValidPublicIPv4Address(address) {
|
package/esm/sig/http.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
2
|
import { getLogger } from "@logtape/logtape";
|
3
|
-
import { equals } from "../deps/jsr.io/@std/bytes/1.0.
|
3
|
+
import { equals } from "../deps/jsr.io/@std/bytes/1.0.2/mod.js";
|
4
4
|
import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/0.224.3/base64.js";
|
5
5
|
import { CryptographicKey } from "../vocab/vocab.js";
|
6
6
|
import { fetchKey, validateCryptoKey } from "./key.js";
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/concat.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAaxD"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/copy.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,SAAI,GAAG,MAAM,CAQzE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ends_with.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"ends_with.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/ends_with.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAWxE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/equals.ts"],"names":[],"mappings":"AA6DA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAQ5D"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"includes_needle.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"includes_needle.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/includes_needle.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,KAAK,SAAI,GACR,OAAO,CAET"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index_of_needle.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"index_of_needle.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/index_of_needle.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,KAAK,SAAI,GACR,MAAM,CAqBR"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"last_index_of_needle.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"last_index_of_needle.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/last_index_of_needle.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,KAAK,GAAE,MAA0B,GAChC,MAAM,CAuBR"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/mod.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"repeat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"repeat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/repeat.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAapE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"starts_with.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.
|
1
|
+
{"version":3,"file":"starts_with.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.2/starts_with.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAS1E"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/runtime/url.ts"],"names":[],"mappings":"AAIA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/runtime/url.ts"],"names":[],"mappings":"AAIA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BlE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASjE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,WASvD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWzD"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|