# CVE-2025-30351: Directus suspended user session token bypass

Source: https://junglewise.ai/threats/cve-2025-30351-directus-suspended-user-session-token-bypass  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2025-03-26. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2025-30351 · Severity: low · CVSS 3.1 · Published 2025-03-26

Directus is a headless CMS and backend-as-a-service platform used to manage APIs, databases, and content. When an administrator suspends a user account, the system fails to invalidate that user's existing session tokens. A suspended employee or attacker with a captured session token can continue accessing the API and its data until the token expires, circumventing the intended suspension control.

Technologies: [@directus/api (npm)](https://junglewise.ai/threats/technologies/directus-api), [directus (npm)](https://junglewise.ai/threats/technologies/directus). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## 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

  ```sh
  npm install @directus/api@24.0.1
  ```

- @directus/types (npm): upgrade to 13.0.0 or later

  ```sh
  npm install @directus/types@13.0.0
  ```

- directus (npm): upgrade to 11.5.0 or later

  ```sh
  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 &lt;token&gt;" 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

## References

- [https://github.com/directus/directus/security/advisories/GHSA-56p6-qw3c-fq2g](https://github.com/directus/directus/security/advisories/GHSA-56p6-qw3c-fq2g)
- [https://github.com/directus/directus/commit/ef179931c55b50c110feca8404901d5633940771](https://github.com/directus/directus/commit/ef179931c55b50c110feca8404901d5633940771)
- [https://github.com/directus/directus](https://github.com/directus/directus)

## Related threats

- [Directus authorization bypass via unsegmented response cache key](https://junglewise.ai/threats/cve-2026-61836-directus-authorization-bypass-via-unsegmented-response-cache-key)
- [Directus SSRF bypass in file import via 0.0.0.0 address](https://junglewise.ai/threats/cve-2026-61835-directus-ssrf-bypass-in-file-import-via-0-0-0-0-address)
- [Directus sensitive information disclosure via aggregate queries](https://junglewise.ai/threats/cve-2026-35442-directus-sensitive-information-disclosure-via-aggregate-queries)
- [Directus resource exhaustion via GraphQL alias amplification](https://junglewise.ai/threats/cve-2026-35441-directus-resource-exhaustion-via-graphql-alias-amplification)
- [Directus GraphQL introspection bypass in system endpoint](https://junglewise.ai/threats/cve-2026-35413-directus-graphql-introspection-bypass-in-system-endpoint)
