Quick answers
- Is CVE-2025-30351 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2025-30351 being exploited in the wild.
- How severe is CVE-2025-30351?
- Low severity, with a CVSS score of 3.1, published 26 March 2025.
- Which products and versions are affected?
- @directus/api (npm) SEMVER:introduced=18.0.0,fixed=24.0.1; @directus/types (npm) SEMVER:introduced=11.0.7,fixed=13.0.0; directus (npm) SEMVER:introduced=10.10.0,fixed=11.5.0.
- Is there a fix for CVE-2025-30351?
- Yes. @directus/api (npm): upgrade to 24.0.1 or later; @directus/types (npm): upgrade to 13.0.0 or later; directus (npm): upgrade to 11.5.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2025-30351 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2025-30351?
- Check whether you run @directus/api (npm), @directus/types (npm) or directus (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- @directus/api (npm): upgrade to 24.0.1 or later
npm install @directus/api@24.0.1 - @directus/types (npm): upgrade to 13.0.0 or later
npm install @directus/types@13.0.0 - directus (npm): upgrade to 11.5.0 or later
npm install directus@11.5.0
Technical details
The vulnerability exists in the verifySessionJWT function, which validates session tokens without checking whether the associated user account is still active or suspended. The vulnerability class is CWE-672 (Operation on a Resource after Expiration or Release). An attacker who has obtained a valid session token (e.g., via login before suspension or through token theft) can send API requests with "Authorization: Bearer <token>" and gain access despite the user account being suspended. The attack requires that the token-bearing user had an active account at the time of token generation and is now suspended; the token remains valid until its natural expiration. The fix, released in versions 11.5.0 (directus), 24.0.1 (@directus/api), and 13.0.0 (@directus/types), adds a check to verify user status in the session verification logic and clears sessions when a user's status changes.
Affected products
- Directus directus >=10.10.0, <11.5.0
- Directus @directus/api >=18.0.0, <24.0.1
- Directus @directus/types >=11.0.7, <13.0.0
Identifiers
- CVE-2025-30351
- GHSA-56p6-qw3c-fq2g
Timeline
- 2025-03-26: disclosed: Published on GitHub Security Advisory
- 2025-02-27: patched: Patch commit ef179931c55b50c110feca8404901d5633940771 merged