Loading HuntDB...

GHSA-849r-qrwj-8rv4

GitHub Security Advisory

Directus allows unauthenticated access to WebSocket events and operations

✓ GitHub Reviewed HIGH Has CVE

Advisory Details

### Summary
When setting `WEBSOCKETS_GRAPHQL_AUTH` or `WEBSOCKETS_REST_AUTH` to "public", an unauthenticated user is able to do any of the supported operations (CRUD, subscriptions) with full admin privileges.

### Details
Accountability for unauthenticated WebSocket requests is set to null, which used to be "public permissions" until the Permissions Policy update which now defaults that to system/admin level access. So instead of null we need to make use of `createDefaultAccountability()` to ensure public permissions are used for unauthenticated users.

### PoC
1. Start directus with
```bash
WEBSOCKETS_ENABLED=true
WEBSOCKETS_GRAPHQL_AUTH=public
WEBSOCKETS_REST_AUTH=public
```

2. Subscribe using GQL or REST or do any CRUD operation on a user created collection (system tables are not reachable with crud)
```gql
subscription {
directus_users_mutated {
key
event
data {
id
email
first_name
last_name
password
}
}
}
```
or
```json
{
"type": "items",
"action": "read",
"collection": "your_collection_name"
}
```
3a. Open up the data studio as any user. Observe how the subscriber gets notified on each page navigation (because the users `last_page` gets updated, the `password` fields is properly redacted here)

3b. Observe receiving all available items from the `your_collection_name` collection.

### Impact

This impacts any Directus instance that has either `WEBSOCKETS_GRAPHQL_AUTH` or `WEBSOCKETS_REST_AUTH` set to `public` allowing unauthenticated users to subscribe for changes on any collection or do REST CRUD operations on user defined collections ignoring permissions.

Affected Packages

npm directus
Affected versions: 11.0.0 (fixed in 11.3.0)
npm @directus/api
Affected versions: 22.2.0 (fixed in 23.2.0)

Related CVEs

Key Information

GHSA ID
GHSA-849r-qrwj-8rv4
Published
December 9, 2024 8:40 PM
Last Modified
December 9, 2024 9:54 PM
CVSS Score
7.5 /10
Primary Ecosystem
npm
Primary Package
directus
GitHub Reviewed
✓ Yes

Dataset

Last updated: September 14, 2025 6:31 AM

Data from GitHub Advisory Database. This information is provided for research and educational purposes.