Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify cached Directus endpoint
-
DeliveryWait for/trigger privileged cache population
-
ExploitRequest identical URL as anonymous or other share
-
ExecutionReceive mis-scoped cached response
-
ImpactRead unauthorized filtered data
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Cache-Control for sensitive pages
|
| Exploitation Conditions | Exploitation requires response caching to be enabled in Directus (not enabled by default), and requires that a cacheable response for the exact same path and query string was already cached by a principal with different effective permissions - specifically a Directus share token or an authenticated user whose accountability.user resolves differently from the attacker. The attacker (an anonymous client or a different share-token holder) must request the identical URL and query while that cache entry is live. Limiting factors: the flaw is inert if caching is off, if URLs/queries differ between principals, or if no higher-privileged request has populated the cache; disclosure is bounded to whatever data the caching principal was permitted to see, not the entire database. |
| Impact | The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N, base 8.6) reflects a network-reachable, unauthenticated confidentiality breach with a scope change, which matches a cache that leaks one principal's authorized data to another. Real-world risk is meaningfully gated by two preconditions the base score under-weights: response caching must be explicitly enabled (it is not on by default), and a cacheable response for the exact path and query must have been populated by a principal whose permissions differ from the attacker's. No EPSS score, KEV listing, or POC was provided, so this is a real but not urgent priority: no evidence of active exploitation, and impact is limited to disclosure of data already exposed to some share or role, not full database compromise. I assess AC as higher than the NVD's AC:L because exploitation depends on cache state seeded by another principal; on a busy instance this happens through normal traffic, so defenders running caching with shares should treat it as a genuine data-segregation failure rather than a theoretical one. |
| Exploit ScenarioDerived | On a Directus instance with response caching enabled, a share link (or an authenticated user) first requests a filtered collection endpoint, populating the cache with a permission-filtered response. An anonymous visitor or a holder of a different share token then requests the identical URL and query and is served that cached response without permission re-evaluation, disclosing records they should not see. No public POC is identified, but the technique requires only normal HTTP requests to matching URLs. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 15, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Directus gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
2DescriptionCVE.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.
Blast Radius
ecosystem impact- 2 npm packages depend on directus (1 direct, 1 indirect)
Ecosystem-wide dependent count for version 12.0.0.
Executive ViewAI
Directus before 12.0.0 contains a cache disclosure vulnerability affecting permission controls when response caching is enabled; no public exploit identified at time of analysis. Unauthorized users and share-token holders could access sensitive data through cached responses, creating compliance and privacy exposure. Immediate upgrade to 12.0.0 is required.
Apply vendor patch: Upgrade to Directus 12.0.0. Interim mitigation: disable response caching until upgrade is deployed, if operationally feasible.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
EUVD-2026-44673
GHSA-c6w9-5g5j-jh2p
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB