CVE-2026-61836
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.
Scoring
- Severity
- HIGH
- CVSS base score
- 8.6
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
- EPSS probability
- 0.47%
- CWE
- CWE-524, CWE-639
- Published
- 2026-07-15
- Last modified
- 2026-07-15
Affected products
- directus directus
Weakness type
Related vulnerabilities
- CVE-2026-82755 — ash_authentication_oauth2_server serves tenant-specific OAuth metadata as publicly cacheable without Vary, enabling cross-tenant confusion
- CVE-2026-84933 — undici vulnerable to cross-user cookie disclosure via Set-Cookie caching in shared caches
- CVE-2026-15743 — Catalyst::Plugin::Static::Simple versions through 0.38 for Perl mark responses as publicly cacheable
- CVE-2026-54625 — django CMS: Page cache ignores plugin-declared Vary headers (disclosure & poisoning)
- CVE-2026-59903 — Netty: Cache Poisoning and Information Disclosure via CORS Vary Header Overwrite
- CVE-2026-71316 — Nuxt runtime payload cache discloses another user's SSR data across users and to unauthenticated clients
- CVE-2026-25703 — Potential information leakage from manager /network/graph API in NeuVector
- CVE-2026-14643 — undici vulnerable to cross-user information disclosure via whitespace around equals in Cache-Control directives