Vulnerabilities

Vulnerability · GHSA-97xr-jchp-xm3c

Directus public WebSocket clients gain unrestricted item access after a failed auth message

Published Aug 5, 2026 · catalog updated Aug 5, 2026 · Directus public WebSocket clients

Last checked Nov 1, 2026. A connected source was read within the last 7 days.

Open the advisory

Exploitation likelihood is not on this record for GHSA-97xr-jchp-xm3c. A missing EPSS score is not a low risk. Compare Directus public WebSocket clients with the linked advisory before you change production.

Gaps on this record

  • The stored product name is a package slug. The name on this page is taken from the title (Directus public WebSocket clients).
  • No vendor fix or required action is stored. Compare the linked advisory before you change production.
  • EPSS is missing. A missing score is not a low risk.
Severity
Critical—
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
Awaiting synchronization with FIRST
Remediation
Version ranges on file
Affected products
npm directus

# Summary When a Directus instance is configured for public WebSocket REST access, a failed message on an already connected socket replaces the client's public accountability with a null accountability and leaves the connection open. Null accountability is the state Directus reserves for trusted internal calls, and the service layer skips permission evaluation entirely when it is present. Every subsequent message on that socket is therefore executed with no authorization check. The result is that failing authentication grants more access than succeeding at it. An unauthenticated attacker who can reach the public WebSocket endpoint can deliberately submit an invalid token and then read, create, update, or delete records in any user-defined collection, regardless of the permissions granted to the public role. # Details The WebSocket handler passes the connected client's accountability directly into . only calls its access validation when an accountability object is present, so a null value bypasses the check rather than denying it. Deletion by query is the highest impact action reachable this way, because a single attacker-supplied filter can select every row in a collection and Directus applies no batch mutation limit by default. The same accountability transition also occurred when a public-mode client's access token expired without a successful re-authentication, so the vulnerable state is reachable without submitting a deliberately invalid token. Directus system collections are rejected by the handler before the service call, so users, sessions, tokens, permissions, and other data are not reachable through this path. Impact is confined to user-defined collections. # Impact Confidentiality, integrity, and availability of user-defined collection data are all affected. An unauthenticated network attacker gains unrestricted read and write access to that data, and can destroy arbitrary amounts of it in a single request. Configured query limits and reduce the blast radi

Are you affected?

Enter the version you run. The result uses only the ranges stored on this record.

The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.

  • npm directus< 12.1.0

How to fix GHSA-97xr-jchp-xm3c

  • Upgrade

    GHSA-97xr-jchp-xm3c lists a fix boundary at 12.1.0. Compare the installed build with that boundary before you change production.

  • Version check

    Affected < 12.1.0

  • Advisory

    Open the inventory_github record and follow its fix.

  • Official advisories

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

Exploitation likelihood is not on this record for GHSA-97xr-jchp-xm3c. A missing EPSS score is not a low risk. Compare Directus public WebSocket clients with the linked advisory before you change production.

Which versions are affected?

Compare what you have installed with < 12.1.0. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

CWE-269: Improper Privilege Management; CWE-284: Improper Access Control; CWE-636. EPSS is not on this record yet. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Technology hubs

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Aug 5, 2026 · Maintainer security tabs

    Detected

    # Summary When a Directus instance is configured for public WebSocket REST access, a failed message on an already connected socket replaces the client's public accountability with a null accountability and leaves the connection open. Null accountability is the state Directus reserves for trusted internal calls, and the service layer skips permission evaluation entirely when it is present. Every su

  2. Aug 5, 2026 · Maintainer security tabs

    Updated

    # Summary When a Directus instance is configured for public WebSocket REST access, a failed message on an already connected socket replaces the client's public accountability with a null accountability and leaves the connection open. Null accountability is the state Directus reserves for trusted internal calls, and the service layer skips permission evaluation entirely when it is present. Every su

Sources

  • Maintainer security tabsVendor advisoryGHSA-97xr-jchp-xm3c

    # Summary When a Directus instance is configured for public WebSocket REST access, a failed message on an already connected socket replaces the client's public accountability with a null accountability and leaves the connection open. Null accountability is the state Directus reserves for trusted internal calls, and the service layer skips permission evaluation entirely when it is present. Every su

    github.com

Freshness

Last verified in this catalog Aug 5, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • Maintainer security tabsNov 1, 2026