CVE-2026-50131 json
Fedify has an incomplete SSRF mitigation after GHSA-p9cg-vqcc-grcx: validatePublicUrl allows special-use IPv4 ranges
published 2026-06-10 4 mo ago modified 2026-07-28 3 mo ago also EUVD-2026-36132 , GHSA-xw9q-2mv6-9fr8
- cvss
- 8.6
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 28%
- public exploits
- 0
- none known
Summary
Fedify is a TypeScript library for building federated server apps powered by ActivityPub. Fedify previously addressed SSRF/internal network access in GHSA-p9cg-vqcc-grcx by adding public URL validation before runtime document and media fetching. However, the IPv4 validation logic present starting in version 0.11.2 and prior to versions 1.9.12, 1.10.11, 2.0.19, 2.1.15, and 2.2.4 appears incomplete. The `validatePublicUrl()` protection relies on `isValidPublicIPv4Address()` to reject non-public IPv4 destinations. The function blocks common private and local ranges such as `10.0.0.0/8`, `127.0.0.0/8`, `169.254.0.0/16`, `172.16.0.0/12`, and `192.168.0.0/16`, but it still treats several special-use, reserved, multicast, benchmarking, and carrier-grade NAT IPv4 ranges as valid public destinations. Because this validation is used as an SSRF defense before outbound fetches, this appears to be an incomplete mitigation or bypass class for the previous SSRF issue. Versions 1.9.12, 1.10.11, 2.0.19, 2.1.15, and 2.2.4 contain an updated patch.
Patch / fix
- npm @fedify/fedify 1.9.12, 1.10.11, 2.0.19, 2.1.15, 2.2.4
- npm @fedify/vocab-runtime 2.0.19, 2.1.15, 2.2.4
- fedify fedify 1.9.12, 1.10.11, 2.0.19, 2.1.15, 2.2.4
- fedify vocab-runtime 2.0.19, 2.1.15, 2.2.4
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 4 mo ago
Exploit prediction
0.35% chance of exploitation in the next 30 days, higher than 28% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/fedify-dev/fedify/security/advisories/GHSA-xw9q-2mv6-9fr8 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L |
| GitHub | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @fedify/fedify | >=0.11.2, <1.9.12 >=1.10.0, <1.10.11 >=2.0.0, <2.0.19 >=2.1.0, <2.1.15 >=2.2.0, <2.2.4 |
1.9.12 1.10.11 2.0.19 2.1.15 2.2.4 |
| npm | @fedify/vocab-runtime | <2.0.19 >=2.1.0, <2.1.15 >=2.2.0, <2.2.4 |
2.0.19 2.1.15 2.2.4 |
Affected products
- fedify-dev fedify
- fedify-dev vocab-runtime
Classification
References
Sources
- CVE List CVE-2026-50131
- GitHub Advisory GHSA-xw9q-2mv6-9fr8
- NVD CVE-2026-50131
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.