Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Unauthenticated and network-reachable (PR:N/AV:N), but AC:H because exploitation depends on a cache entry pre-populated by a differently-scoped principal; scope changes (S:C) as one principal's data leaks to another, with pure confidentiality impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4Blast Radius
ecosystem impact- 2 npm packages depend on directus (1 direct, 1 indirect)
Ecosystem-wide dependent count for version 12.0.0.
DescriptionCVE.org
Directus is a real-time API and App dashboard for managing SQL database content. Prior to 12.0.0, when response caching is enabled, the cache-key derivation in api/src/utils/get-cache-key.ts includes version, path, query, and accountability.user but omits authorization context such as share, role, roles, admin, app, and policies. Directus share tokens and anonymous requests can both reduce to user null, so different shares or anonymous clients requesting the same URL and query can receive a permission-filtered cached response without permission re-evaluation. This issue is fixed in version 12.0.0.
AnalysisAI
Cross-context cache disclosure in Directus before 12.0.0 lets share-token holders and anonymous clients receive permission-filtered responses that were cached for a differently-scoped principal, because the cache key omits authorization context. When response caching is enabled, the key derived in api/src/utils/get-cache-key.ts covers only version, path, query, and accountability.user; since share tokens and anonymous requests both collapse to user null, requests to the same URL and query share a cache bucket and skip permission re-evaluation. There is no public exploit identified at time of analysis and it is not listed in CISA KEV, but the flaw is a straightforward, config-dependent information-disclosure issue fixed in 12.0.0.
Technical ContextAI
Directus is a real-time headless CMS that exposes SQL database content through a REST/GraphQL API and admin app, and offers an optional response cache to reduce database load. The root cause is CWE-524 (use of a cache containing sensitive information): the cache-key function keys entries on accountability.user but ignores the broader authorization context (share, role, roles, admin, app, and policies). Directus 'shares' are scoped, tokenized public links to filtered data, and anonymous callers have no user; both resolve accountability.user to null, so two principals with different effective permissions map to the same cache key for an identical path and query. The upstream fix (PR #27707, commit 7ba4efb) namespaces the cache key by adding the share id when present, and adds regression tests proving different shares, anonymous requests, and authenticated users no longer collide on the same URL.
RemediationAI
Vendor-released patch: upgrade to Directus 12.0.0 (https://github.com/directus/directus/releases/tag/v12.0.0), which namespaces cache keys by share and prevents cross-context collisions. If immediate upgrade is not possible, the most effective compensating control is to disable response caching (e.g. CACHE_ENABLED=false), which fully removes the collision at the cost of higher database load and slower repeated queries. As a narrower alternative, avoid using share links and public/anonymous access on cached endpoints, or segregate/purge the cache so share and anonymous traffic cannot reuse entries populated by other principals; this reduces cache hit rates and still does not address collisions between different roles. After patching, flush any existing cache so stale, mis-scoped entries created before the upgrade are not served. See advisory GHSA-c6w9-5g5j-jh2p for authoritative guidance.
Directus 6.4.9 has a hardcoded admin password for the Admin account because of an INSERT statement in api/schema.sql. Ra
Directus is a real-time API and App dashboard for managing SQL database content. Rated critical severity (CVSS 9.3), thi
Directus 8 before 8.8.2 allows remote authenticated users to execute arbitrary code because file-upload permissions incl
In Directus 8.x through 8.8.1, an attacker can switch to the administrator role (via the PATCH method) without any contr
Directus is a real-time API and App dashboard for managing SQL database content. Rated high severity (CVSS 8.6), this vu
Directus is a real-time API and App dashboard for managing SQL database content. Rated high severity (CVSS 8.2), this vu
Directus is a real-time API and App dashboard for managing SQL database content. Rated high severity (CVSS 7.7), this vu
Directus is a real-time API and App dashboard for managing SQL database content. Rated high severity (CVSS 7.5), this vu
Directus is a real-time API and App dashboard for managing SQL database content. Rated high severity (CVSS 7.5), this vu
Directus is a real-time API and App dashboard for managing SQL database content. Rated high severity (CVSS 7.5), this vu
In Directus 8.x through 8.8.1, an attacker can see all users in the CMS using the API /users/{id}. Rated high severity (
Directus is a real-time API and App dashboard for managing SQL database content. Rated medium severity (CVSS 6.5), this
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-44673
GHSA-c6w9-5g5j-jh2p