#Fedify
ChanHaeng Lee (@2chanhaeng), one of the @fedify maintainers, is asking the #fediverse which of his two projects he should present in the Social Web devroom at @fosdem 2027.

@drfed is an #activitypub debugging tool that he is building with @z9mb1, @gaebalgom, and me. fedi.blue (https://fedi.blue […]
Original post on hollo.social
hollo.social
November 11, 2026 at 1:46 PM
@kecan0406 님 뿐만 아니라 OSSCA 2026을 통해 @fedify 프로젝트에 기여해 주신 @siliconsjang 님, @m2nsp 님, @sehaha 님, @dstforye 님, @junghoon 님, @jseok492 님, @0w0 님, @bananamilk452 님, @paperbox 님, @minyounglee 님, @userjmmm 님, @dktsudgg 님, @jhyuk 님, @menele 님, @diyung 님, @jin8ff5 님, @seongmin36 님, @jaonz6057 님, @axz0612 […]
Original post on hackers.pub
hackers.pub
November 3, 2026 at 7:35 AM
🚨 EUVD-2026-114518
📊 5.3/10
🏢 TryGhost

📝 ActivityPub is a multi-tenant ActivityPub server for Ghost, built with Fedify. From 1.0.0 until 1.2.6, the `Undo` handler allows a remote federated ser...

🔗 https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-114518

#cybersecurity #infosec #cve #euvd
November 2, 2026 at 7:01 PM
ActivityPub.Academy was where many of us checked whether our activities actually arrived anywhere. Thanks @crepels for running it so well for so long.

We're carrying that forward. @z9mb1, @2chanhaeng and I maintain Fedify, and with @gaebalgom the four of us are building @drfed, a web platform […]
Original post on hollo.social
hollo.social
November 1, 2026 at 4:38 AM
A security update addressing two vulnerabilities in Fedify has been released. Please update as soon as possible!

https://hackers.pub/@fedify/2026/GHSA-r48c-xx2h-fv4g
hackers.pub
October 26, 2026 at 11:34 PM
Fedify 보안 취약점 2건에 대한 보안 업데이트가 릴리스되었으니, 조속히 업데이트 바랍니다!
October 26, 2026 at 11:49 PM
Fedify security updates: 2.0.35, 2.1.31, 2.2.20, 2.3.15, and 2.4.5
If you use an affected Fedify release, update now. Two server-side request forgery vulnerabilities have been addressed: GHSA-r48c-xx2h-fv4g, a DNS rebinding bypass of Fedify's private address checks, and GHSA-cj5r-cw77-6gwp, unvalidated page and favicon requests in `fedify nodeinfo`. Deno deployments need additional network restrictions; upgrading Fedify alone does not close the DNS rebinding vulnerability. The patched releases are 2.0.35, 2.1.31, 2.2.20, 2.3.15, and 2.4.5. Update to the corresponding release on your minor line, with the runtime mitigations described below. The affected releases on these lines are 2.0.34 and earlier, 2.1.30 and earlier, 2.2.19 and earlier, 2.3.14 and earlier, and 2.4.4 and earlier. For ongoing support, the security policy covers the latest two minor lines, 2.3 and 2.4. Users on releases before 2.0 should move to a supported release. ## DNS rebinding bypasses SSRF protection (GHSA-r48c-xx2h-fv4g, medium, CVSS 5.4) Fedify checked that a hostname resolved only to public addresses, then let `fetch()` resolve it again when connecting. An attacker controlling the hostname's DNS answers could return a public address for validation and a private or loopback address for the connection, causing requests to reach internal services. Redirects and alternate-document links were subject to the same gap. This affects document loading, including authenticated document loading, outbound activity delivery, NodeInfo lookups, and WebFinger lookups in `@fedify/fedify`, `@fedify/vocab-runtime`, and `@fedify/webfinger`. On Node.js and Bun, the fix makes connections only to addresses that passed validation. Calling `validatePublicUrl()` before an application's own `fetch()` still does not pin that connection. Setting `allowPrivateAddress: true` continues to permit private destinations. On Bun, deployments with `HTTP_PROXY`, `HTTPS_PROXY`, or `ALL_PROXY` set, including their lowercase forms, should upgrade to Bun 1.4.3 or later. Alternatively, unset those variables for the Fedify process or configure the proxy to refuse private destinations. Older Bun versions may send requests through a proxy that resolves the hostname again. On Bun versions before 1.3.11, Fedify now refuses HTTPS requests to non-default ports because those Bun versions cannot verify a pinned connection's certificate against the original hostname. See the Bun deployment guidance. Deno's `fetch()` cannot pin connections to validated addresses. Use Deno 2.8.1 or later with the documented `--deny-net` list and a Unix domain socket behind a reverse proxy, plus network-level restrictions for private IPv6 ranges. If that setup is unsuitable, apply equivalent outbound restrictions at the firewall or container network layer. Follow the Deno deployment mitigation. ## Unvalidated page and favicon requests (GHSA-cj5r-cw77-6gwp, low, CVSS 3.1) An operator running `fedify nodeinfo` against a malicious instance could cause the CLI to send a GET request to a loopback, link-local, or private address from the operator's machine. The NodeInfo lookup validated destinations, but the subsequent page and favicon requests used plain `fetch()` with automatic redirects. A malicious favicon URL or page redirect could therefore reach an internal endpoint. The attacker does not directly receive the response body, but the request can affect an internal endpoint with GET side effects. The fix validates page, favicon, and redirect destinations, skipping the favicon when a destination is private while still showing the NodeInfo document. Upgrade `@fedify/cli` separately from the library. Until then, `--no-favicon` or `--raw` avoids these page and favicon requests. The Bun and Deno caveats above also apply to the CLI. ## Updating Use the command for your package manager to install 2.4.5 explicitly: npm install @fedify/fedify@2.4.5 yarn add @fedify/fedify@2.4.5 pnpm add @fedify/fedify@2.4.5 bun add @fedify/fedify@2.4.5 deno add jsr:@fedify/fedify@2.4.5 If you stay on another minor line, substitute `2.0.35`, `2.1.31`, `2.2.20`, or `2.3.15` as appropriate. Update direct dependencies on `@fedify/vocab-runtime` and `@fedify/webfinger` to the same release as well. Check the resolved versions in your lockfile, since an ordinary update command can stay within a vulnerable dependency range or leave a transitive dependency locked. Apply the runtime mitigations above and redeploy all web and worker processes. For an npm-installed global CLI: npm install -g @fedify/cli@2.4.5 For other installation methods, reinstall the corresponding patched version using the CLI installation instructions. Check `fedify --version` before using it against an untrusted instance. Thanks to @finalchild for reporting the DNS rebinding issue and to Zachariah Mithani for reporting the favicon request issue. If anything is unclear, ask below.
hackers.pub
October 26, 2026 at 11:40 PM
### Hollo security updates: 0.8.17 and 0.9.25

If you run Hollo, update to 0.8.17 or 0.9.25 now. These releases fix GHSA-r48c-xx2h-fv4g, a DNS rebinding vulnerability in Fedify that could bypass Hollo's server-side request forgery (SSRF) protection and cause requests to reach internal services […]
Original post on hollo.social
hollo.social
October 26, 2026 at 11:53 PM
### Hollo security updates: 0.8.16 and 0.9.24

If you run Hollo, update to 0.8.16 or 0.9.24 now. These releases fix GHSA-v2qh-w789-xxj6, a missing ownership check in status deletion, and include fixes for three vulnerabilities in Fedify that affect Hollo. They also include a fix for a fourth […]
Original post on hollo.social
hollo.social
October 17, 2026 at 9:41 AM
A security update addressing two vulnerabilities in Fedify has been released. Please update as soon as possible!

https://hackers.pub/@fedify/2026/GHSA-4qhx-hhwf-8685
hackers.pub
October 16, 2026 at 4:35 AM
Fedify security updates: 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4
If you use an affected Fedify release, update now. Two vulnerabilities have been fixed in `@fedify/fedify`: GHSA-4qhx-hhwf-8685, an inbox origin validation flaw that could let an attacker supply forged objects or suppress genuine activities, and GHSA-8863-8468-7hq7, a flaw in the key ownership check that could authenticate activities as the wrong actor under specific actor-document configurations. The releases containing both fixes are 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4. We recommend 2.4.4, or 2.3.14 if you are staying on the 2.3 line. Under the security policy, Fedify supports the latest two minor lines, currently 2.4 and 2.3. Backported fixes are also available in the releases listed above for 2.0, 2.1, and 2.2, but users on those older lines should plan to move to a supported line. Users on affected 1.x releases need to change their dependency to a supported 2.x release. ## Inbox activity origin mismatch (GHSA-4qhx-hhwf-8685, medium, CVSS 6.5) GHSA-4qhx-hhwf-8685 affects applications receiving activities through Fedify's inbox listeners. The inbox authenticated an activity's actor but accepted an activity `id` on an origin different from the actor's. An attacker needed only an actor and its signing key on a server they controlled, with no account on the receiving server or interaction from the victim. Since version 1.9.0, Fedify's property accessors have trusted embedded objects whose IDs share the activity's origin. By choosing an activity ID on a victim server's origin, an attacker could make `Create.getObject()` and other accessors return forged objects claiming to live on that server without fetching them from it. Depending on the application's attribution and authorization checks, this could cause it to store or display forged content under another server's object ID. The same missing check also let an attacker reserve a genuine activity's idempotency cache entry by submitting a forged activity with its ID first. The genuine delivery then received `202 Accepted` but did not reach the listeners for one day. When a message queue was configured, the suppression applied across all inboxes on the receiving server. This behavior was confirmed in 1.8.15 and subsequent releases before the fixes; releases before 1.8 were not tested. The first fixes shipped in 2.0.33, 2.1.29, 2.2.18, 2.3.13, and 2.4.3. Earlier releases on each of those 2.x lines are affected. Update to the newer releases recommended above to receive both fixes. The inbox now returns `401 Unauthorized` for non-portable activities whose IDs have a different origin from their actors, before they reach listeners, the queue, or the idempotency cache. The same origin check applies to queued and manually routed activities. Setting `skipSignatureVerification` bypasses this protection along with signature verification. ## Actor document identity mismatch (GHSA-8863-8468-7hq7, medium, CVSS 5.9) GHSA-8863-8468-7hq7 lists the affected version range as `<= 2.4.3`, with fixes in 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4 on their respective release lines. When confirming that a key belongs to an actor, Fedify fetched the actor's document and checked that it listed the key, but did not require the document's `id` to match the actor ID it requested. An attacker could have activities authenticated as a victim if dereferencing the victim's exact actor ID led to an actor document whose key the attacker controlled. This could happen through a redirect or alternate-document link to the attacker's document, including on another origin, or when the victim's server directly served a different same-origin actor's document. The attacker cannot normally arrange this: it depends on the server hosting the victim's actor ID. A redirect from some other URL on that server is not enough. No account on the receiving Fedify server is required. HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs use the affected ownership checks. The fix requires the fetched actor document's `id` to exactly match the requested actor ID, in addition to the existing origin check. An actor whose ID redirects to a document with a different `id` can no longer have its keys confirmed through that redirect, even on the same origin and for the same account. Servers that normalize actor URLs should use the canonical actor ID as their keys' `owner` or `controller` and their activities' `actor`. The built-in `KvStore`-backed key cache automatically ignores entries created under the weaker check and fetches and verifies those keys again. If you supply a custom `KeyCache` implementation, clear it once when upgrading. Otherwise, previously cached false ownership claims can remain trusted after the upgrade. Downgrading to an earlier release is not safe. ## Updating Update `@fedify/fedify` using the command for your package manager: npm update @fedify/fedify yarn upgrade @fedify/fedify pnpm update @fedify/fedify bun update @fedify/fedify deno update @fedify/fedify Check the installed or locked version: it should be 2.0.34, 2.1.30, 2.2.19, 2.3.14, or 2.4.4 on the corresponding line. Update commands can stay within your declared dependency range. If that range excludes the recommended release, change it explicitly. For example, to move to 2.4.4: npm install @fedify/fedify@2.4.4 yarn add @fedify/fedify@2.4.4 pnpm add @fedify/fedify@2.4.4 bun add @fedify/fedify@2.4.4 deno add jsr:@fedify/fedify@2.4.4 Clear any custom key cache as described above, then redeploy. If you run other Fedify-based servers, update those too. The full GitHub Security Advisories are GHSA-4qhx-hhwf-8685 and GHSA-8863-8468-7hq7. Thanks to @2chanhaeng for reporting the inbox activity origin mismatch. The actor document identity mismatch was found by the Fedify maintainers with AI assistance. If anything is unclear, ask below.
hackers.pub
October 16, 2026 at 4:43 AM
Fedifyの2件のセキュリティ脆弱性に対するセキュリティアップデートがリリースされました。早急にアップデートしてください!

https://hackers.pub/@fedify/2026/GHSA-4qhx-hhwf-8685
Fedify security updates: 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4
Critical security vulnerabilities have been patched in the `@fedify/fedify` package, addressing flaws in inbox origin validation and actor key ownership verification. The first vulnerability, GHSA-4qhx-hhwf-8685, allowed attackers to provide forged embedded objects or suppress genuine activities through idempotency cache abuse due to missing origin checks between activity IDs and their actors. The second vulnerability, GHSA-8863-8468-7hq7, allowed improper authentication under specific actor document redirect or alternate-document configurations when dereferencing keys. Fixes have rolled out across versions 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4, enforcing strict origin matching and document ID equality while automatically invalidating affected built-in cache entries. Upgrading immediately and clearing any custom key caches is essential to protecting Fedify-powered federated applications from activity suppression and identity spoofing.
hackers.pub
October 16, 2026 at 4:40 AM
Fedify 保安(보안) 脆弱點(취약점) 2件(건)에 對(대)한 保安(보안) 업데이트가 릴리스되었으니, 早速히(조속히) 업데이트 바랍니다!

https://hackers.pub/@fedify/2026/GHSA-4qhx-hhwf-8685
Fedify security updates: 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4
Critical security vulnerabilities have been patched in the `@fedify/fedify` package, addressing flaws in inbox origin validation and actor key ownership verification. The first vulnerability, GHSA-4qhx-hhwf-8685, allowed attackers to provide forged embedded objects or suppress genuine activities through idempotency cache abuse due to missing origin checks between activity IDs and their actors. The second vulnerability, GHSA-8863-8468-7hq7, allowed improper authentication under specific actor document redirect or alternate-document configurations when dereferencing keys. Fixes have rolled out across versions 2.0.34, 2.1.30, 2.2.19, 2.3.14, and 2.4.4, enforcing strict origin matching and document ID equality while automatically invalidating affected built-in cache entries. Upgrading immediately and clearing any custom key caches is essential to protecting Fedify-powered federated applications from activity suppression and identity spoofing.
hackers.pub
October 16, 2026 at 4:39 AM
오늘안에 moim.live 부활시킬 수 있을 것 같은데, 만약에 성공하면 `@fedify/interaction-controls` 패키지 테스트부터 먼저할 듯. mastodon 팔로잉 추천에 뜨려나....
October 9, 2026 at 7:51 AM
Anyway, the moment I heard the news, I opened an issue in Fedify with a master plan for moving Deno out of our main development tooling.

Fedify will keep supporting Deno alongside Node.js, and keep publishing packages to JSR alongside npm. Deno just won't be what we develop with anymore […]
Original post on hollo.social
hollo.social
October 9, 2026 at 3:51 PM
Fedify had security updates for two vulnerabilities. Please update your Fedify to 2.0.30, 2.1.26, 2.2.15, 2.3.10, or 2.4.0 now!

https://hackers.pub/@fedify/2026/GHSA-97w4-f4rq-mgqm
hackers.pub
October 4, 2026 at 5:44 AM
Fedify security updates: 2.0.30, 2.1.26, 2.2.15, 2.3.10, and 2.4.0
Two vulnerabilities have been fixed: GHSA-97w4-f4rq-mgqm, unbounded alternate-document fetch chains vulnerability and GHSA-39gj-rchc-q5m3, unverified activity routed after dereference verification vulnerability. The patched releases are 2.0.30, 2.1.26, 2.2.15, 2.3.10, and 2.4.0. Both vulnerabilities affect the preceding releases on those lines: 2.0.28 and 2.0.29, 2.1.24 and 2.1.25, 2.2.13 and 2.2.14, 2.3.8 and 2.3.9. If you still use Fedify 1.x, change your dependency to patched 2.x release because package-manager update commands do not cross the declared major-version range. ## Unbounded alternate-document fetch chains (GHSA-97w4-f4rq-mgqm, high, CVSS 7.5) GHSA-97w4-f4rq-mgqm affects Fedify's document loaders when fetching remote keys and ActivityPub documents. Fedify follows alternate-document links supplied through HTTP `Link` headers and HTML, but following an alternate document reset the redirect counter and visited-URL history. An attacker could therefore make two URLs refer to each other as alternate documents and cause Fedify to fetch them indefinitely. Following an alternate link also dropped the caller's cancellation signal, so aborting the original operation did not stop the fetch chain. An unauthenticated inbox request could exploit this by referencing an attacker-controlled signing-key URL. Resolving the key could then enter an unbounded alternate-document chain, continuously issuing HTTP requests and DNS lookups and eventually exhausting server resources. Both `getDocumentLoader()` and `getAuthenticatedDocumentLoader()` were affected, including their use in `@fedify/vocab-runtime` and `@fedify/fedify`. The fix makes alternate-document links and ordinary HTTP redirects share the same 20-hop limit and visited-URL history. It also preserves the caller's cancellation signal throughout the entire fetch chain. This closes a gap left by the earlier redirect-loop fix for CVE-2026-34148. ## Unverified activity routed after dereference verification (GHSA-39gj-rchc-q5m3, medium, CVSS 6.5) GHSA-39gj-rchc-q5m3 has been present since `Context.routeActivity()` was introduced in Fedify 1.3.0. `Context.routeActivity()` verifies an activity before passing it to inbox listeners. When an activity has no verifiable Object Integrity Proof, Fedify dereferences its `id` and verifies the fetched copy. However, only the Activity object was replaced with the verified copy; the original, unverified JSON-LD document supplied by the caller was retained. With an inbox queue configured, that unverified document was enqueued and later delivered to inbox listeners without being verified again. An attacker who knew the ID of any dereferenceable activity could therefore submit a document with the same ID but an actor, object, and addressing of their choice, causing the application to process attacker-controlled data as authenticated. Without a queue, listeners received the verified Activity object, but their `InboxContext` still contained the unverified document, which `InboxContext.forwardActivity()` could forward to other servers. Applications that never call `Context.routeActivity()` are not affected. Activities successfully authenticated using an Object Integrity Proof are also unaffected, as is the HTTP inbox, which does not use this routing path. The fix replaces both the Activity object and its JSON-LD document with the verified copy when `Context.routeActivity()` falls back to dereferencing. Inbox queues, `InboxContext`, and forwarding therefore all operate on the same document that was actually authenticated. ## Updating Update `@fedify/fedify`: npm update @fedify/fedify yarn upgrade @fedify/fedify pnpm update @fedify/fedify bun update @fedify/fedify deno update @fedify/fedify Check if your resolved dependency versions are at least 2.0.30, 2.1.26, 2.2.15, 2.3.10, or 2.4.0 on the corresponding release line. Please redeploy every Fedify-based servers, after updating. The full Github Security Advisories are GHSA-97w4-f4rq-mgqmand GHSA-39gj-rchc-q5m3. Thanks to @adelzaitri for reporting unverified activity is routed after dereference verification issue. Ask below if anything is unclear.
hackers.pub
October 4, 2026 at 6:05 AM
@evan Thanks for putting this together, Evan. While implementing FEP-6757 in Fedify, I found a few errata: `schema:license` and `cc:license` use IRIs that don't match Schema.org and ccREL, a couple of example typos, and an open question about `@type: @id` coercion. I filed them on your tracker […]
Original post on hollo.social
hollo.social
October 2, 2026 at 1:42 PM
First big release after I joined as a maintainer probably. Patch releases, feature implementations, bug fixes, and lots of code reviews. Thanks, every contributors!!

RE: https://hackers.pub/@fedify/2026/fedify-2-4
hackers.pub
October 1, 2026 at 7:25 AM
A Chinese developer, @21018365486, wrote about adding ActivityPub to her blog using Fedify. Thank you for using Fedify!

https://blog.yunyi.beiyan.us/posts/migrateToFedify/
blog.yunyi.beiyan.us
October 1, 2026 at 3:28 AM
Fedify 2.4.0을 릴리스했습니다.

이번 릴리스의 하이라이트는 FEP-ef61 포터블 客體(객체) 支援(지원)입니다. 이제 Fedify 서버에서 도메인 代身(대신) DID를 身元(신원)으로 삼는 액터를 호스팅하고, 그 署名(서명)된 客體(객체)를 `/.well-known/apgateway/`로 서빙하고, 다른 서버의 포터블 客體(객체)를 檢證(검증)할 수 있습니다. tootik, Mitra와 相互(상호)運用(운용) 테스트를 했고, Fedify의 具顯(구현)이 FEP와 어디가 다르고 무엇을 아직 具顯(구현)하지 […]
Original post on hollo.social
hollo.social
October 1, 2026 at 4:08 AM
Fedify 2.4.0 is out.

The main addition is support for FEP-ef61 portable objects. A Fedify server can now host actors whose identity is a DID instead of a domain, serve their signed objects through `/.well-known/apgateway/`, and verify the portable objects of other servers. I tested it against […]
Original post on hollo.social
hollo.social
September 30, 2026 at 6:58 PM
Fedify 2.4.0をリリースしました。

今回の中心となるのはFEP-ef61ポータブルオブジェクトのサポートです。Fedifyサーバーで、ドメインではなくDIDをアイデンティティとするアクターをホストし、その署名済みオブジェクトを`/.well-known/apgateway/`で配信し、他のサーバーのポータブルオブジェクトを検証できるようになりました。tootikおよびMitraとの相互運用テストを行い、FedifyのプロファイルがFEPとどこが異なり、何をまだ実装していないかもドキュメントにまとめています。

そのほか、アプリケーション定義のバックグラウンドタスク、Acti […]
Original post on hollo.social
hollo.social
October 1, 2026 at 4:10 AM
中國(중국)의 開發者(개발자)인 北雁雲依(베이옌윈이) 님(@21018365486)이 Fedify를 利用(이용)하여 自身(자신)의 블로그에 ActivityPub을 붙인 이야기. 利用(이용)해 주셔서 感謝(감사)합니다!

https://blog.yunyi.beiyan.us/posts/migrateToFedify/
blog.yunyi.beiyan.us
October 1, 2026 at 3:27 AM
Fedify security updates: 2.0.28, 2.1.24, 2.2.13, and 2.3.8
If you use an affected Fedify release, update now. Three vulnerabilities have been fixed: CVE-2026-96625, a critical actor impersonation vulnerability; CVE-2026-96623, a high-severity denial-of-service vulnerability in remote document parsing; and CVE-2026-96624, a medium-severity server-side request forgery vulnerability in outbound activity delivery. Treat the actor impersonation issue as an immediate upgrade: anyone on the internet could have an activity accepted by your inbox as coming from any actor. The patched releases are 2.0.28, 2.1.24, 2.2.13, and 2.3.8. All three vulnerabilities affect the preceding releases on those lines: 2.0.27, 2.1.23, 2.2.12, and 2.3.7, respectively. If you still use Fedify 1.x, change your dependency to a patched 2.x release because package-manager update commands do not cross the declared major-version range. ## Actor impersonation (CVE-2026-96625, critical, CVSS 9.1) CVE-2026-96625 has been present since Fedify's first public release, 0.1.0. Fedify verified the signature on an incoming activity, but trusted the signing key document's own claim about whom the key belonged to. An attacker with an ordinary HTTP server could serve a key document naming any actor as its owner and have activities accepted under that actor's identity, even if the actor did not exist. No account on the receiving server was required. HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs were all affected; the latter two did not require an HTTP signature on the request. The same vulnerability affected `getKeyOwner()` and `Context.getSignedKeyOwner()`. A forged key document could pass ownership checks under another actor's identity, allowing an attacker to read resources that an application's authorized fetch access control reserved for that actor. The fix resolves the claimed owner's actor document and requires it to link back to the key. It also validates the origin of fetched actor documents, so a host serving a key cannot speak for an actor on another origin. A key without an explicit owner is attributed to the actor whose document carried it. Public keys cached before this release recorded ownership that had not been verified. Fedify's built-in key cache automatically stops reading those entries. If you pass a custom `KeyCache` implementation to `verifyRequest()`, `verifyJsonLd()`, or `verifyObject()`, discard its contents when you upgrade. A patched process reading a stale entry from a custom cache would still trust the unverified owner in it. ## Unbounded document parsing (CVE-2026-96623, high, CVSS 7.5) CVE-2026-96623 affects deployments that accept inbox requests or fetch remote documents. Fedify parsed JSON bodies without a byte limit, including inbox bodies and responses fetched for keys, actors, objects, JSON-LD contexts, WebFinger descriptors, and NodeInfo documents. An attacker who caused Fedify to fetch a URL they controlled could exhaust memory and CPU with a large response. A small compressed response could expand substantially before parsing, so an inbound body limit at a reverse proxy did not protect the outbound fetch paths. The fix limits JSON bodies to 16 MiB after decompression. HTML alternate-link discovery retains its existing 1 MiB limit. Oversized inbox requests receive HTTP 413, and oversized WebFinger descriptors resolve to `null`. The JSON limit is fixed in these patch releases; applications that exchange legitimate JSON-LD documents larger than 16 MiB will now have those documents rejected. The parsing fixes also ship in `@fedify/vocab-runtime` and `@fedify/webfinger`. If you depend on either package directly, update it too. They use the same patched version numbers listed above. ## Outbound delivery SSRF (CVE-2026-96624, medium, CVSS 5.8) CVE-2026-96624 affects applications that deliver activities to inbox URLs learned from remote actors. The delivery path validated neither the advertised inbox URL nor redirect destinations. A remote actor could point its inbox at a loopback address, a link-local metadata service, or a private network host, or redirect delivery there. On the RSA delivery path, the redirected request remained a POST carrying the activity body and was re-signed for the internal host. The vulnerable delivery path dates back to JSR release 0.1.0 and npm release 0.5.0. The fix validates the initial destination and every redirect target before sending a request. The authenticated document-loader fix in CVE-2026-77632 covered a separate fetch path and did not protect outbound activity delivery. If you deliberately deliver to private addresses for local testing or a closed federation, these releases will refuse those deliveries unless you pass `allowPrivateAddress: true` to `createFederation()`. That option permits both private inbox URLs and private redirect targets, restoring the exposure described here. Keep it to environments where you control the actors you federate with. ## Updating Update `@fedify/fedify`: npm update @fedify/fedify yarn upgrade @fedify/fedify pnpm update @fedify/fedify bun update @fedify/fedify deno update @fedify/fedify Check that your resolved dependency versions are at least 2.0.28, 2.1.24, 2.2.13, or 2.3.8 on the corresponding release line. Update any direct dependencies on `@fedify/vocab-runtime` and `@fedify/webfinger` as well, and clear any custom key cache as described above. After updating, redeploy. If you run other Fedify-based servers, update those too. The full GitHub Security Advisories are CVE-2026-96625, CVE-2026-96623, and CVE-2026-96624. Thanks to @kaimandalic and @moreal for independently reporting the actor impersonation issue. Thanks also to @kaimandalic for the unbounded document parsing report and @euriconicacio for the outbound delivery SSRF report, and to all three for responsible disclosure. If anything is unclear, ask below.
hackers.pub
September 27, 2026 at 8:30 AM