If you use BotKit, update to a patched release now. Three vulnerabilities affect Fedify versions included by BotKit as a dependency: 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 bot's inbox as coming from any actor.
CVE-2026-96625 affects signature verification for incoming activities. Fedify verified the signature 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. No account on the receiving server was required. HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs were all affected. The same flaw affected getKeyOwner() and Context.getSignedKeyOwner(), so applications using those methods for authorized fetch access control could also expose resources reserved for the impersonated 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. Fedify's built-in key cache automatically stops reading entries cached before the fix. If your application passes a custom KeyCache to verifyRequest(), verifyJsonLd(), or verifyObject(), discard its contents when upgrading: a patched process would still trust unverified ownership in a stale custom cache entry.
CVE-2026-96623 affects inbox requests and remote document fetching. Fedify parsed JSON bodies without a byte limit, including inbox bodies and fetched 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. Oversized inbox requests receive HTTP 413, and oversized WebFinger descriptors resolve to null. HTML alternate-link discovery retains its existing 1 MiB limit. The JSON limit is fixed in these patch releases, so legitimate JSON-LD documents larger than 16 MiB will now be rejected too.
CVE-2026-96624 affects outbound activity delivery to inbox URLs learned from remote actors. The delivery path checked neither the advertised inbox URL nor redirect destinations. A remote actor could point its inbox at a loopback address, a link-local cloud 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 fix validates the initial destination and every redirect target before sending a request. The authenticated document-loader fix in CVE-2026-77632, included in BotKit 0.4.6 and 0.5.2, covered a separate fetch path and did not protect outbound delivery. Applications that explicitly enable Fedify's allowPrivateAddress option continue to allow private inbox URLs and private redirect targets. Keep that option limited to testing or closed federation environments where you control the actors you federate with.
BotKit 0.4.x versions through 0.4.6 and BotKit 0.5.x versions through 0.5.3 include Fedify versions affected by all three vulnerabilities. Patched releases are BotKit 0.4.7 and 0.5.4. BotKit 0.4.7 uses Fedify 2.1.24, and BotKit 0.5.4 uses Fedify 2.3.8.
For BotKit 0.5.x, update @fedify/botkit:
npm update @fedify/botkit
yarn upgrade @fedify/botkit
pnpm update @fedify/botkit
bun update @fedify/botkit
deno update @fedify/botkit
For BotKit 0.4.x, update @fedify/botkit:
npm update @fedify/botkit@0.4.7
yarn upgrade @fedify/botkit@0.4.7
pnpm update @fedify/botkit@0.4.7
bun update @fedify/botkit@0.4.7
deno update @fedify/botkit@0.4.7
Check that your resolved Fedify version is at least 2.1.24 on the 2.1.x line or 2.3.8 on the 2.3.x line. If you depend directly on @fedify/vocab-runtime or @fedify/webfinger, update those packages too; their parsing fixes use the same patched version numbers.
After updating, redeploy. The GitHub Security Advisories are GHSA-q9f8-5hc7-898f, GHSA-mc44-6cfg-2v6w, and GHSA-f59r-8gcj-68f2. See also Fedify's own announcement.
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, feel free to ask on GitHub Discussions or Matrix.
matrix.to
You're invited to talk on Matrix
You're invited to talk on Matrix



