CVE-2026-61836: Directus: Authorization-dependent response served from unsegmented cache key
When response caching is enabled (CACHE_ENABLED=true), the cache-key derivation in api/src/utils/get-cache-key.ts includes only version, path, query, and accountability.user (plus a conditional ip). Authorization context beyond user (share, role, roles, admin, app, policies) is not part of the key.
For share tokens this is load-bearing. Directus’s share-authentication flow (api/src/services/shares.ts:100-105) issues a JWT without an id claim, so api/src/utils/get-accountability-for-token.ts never assigns accountability.user, leaving it null (the default from create-default-accountability.ts). Every share token, and every anonymous request, therefore reduces to user: null in the cache-key input. Two different shares (or an anonymous request and a share token) requesting the same URL with the same query produce identical cache keys. The first request populates the bucket with a permission-filtered response; subsequent hits from unrelated shares or anonymous clients receive that payload without any permission re-evaluation.
This is the web-cache pattern “authorization-dependent response cached under an unsegmented key” (cache key collision / missing authorization context in cache key, CWE-524 and CWE-639). Two adjacent read populations collide:
- Share to share:
Share Apopulates the cache,Share BreadsShare A’s scoped response. - Share to anonymous (and the reverse): any unauthenticated client hitting the same URL retrieves cached share-scoped data without presenting any token.
References
- github.com/advisories/GHSA-c6w9-5g5j-jh2p
- github.com/directus/directus/commit/7ba4efb97525d3af33570537c76e44baea767f13
- github.com/directus/directus/pull/27707
- github.com/directus/directus/releases/tag/v12.0.0
- github.com/directus/directus/security/advisories/GHSA-c6w9-5g5j-jh2p
- nvd.nist.gov/vuln/detail/CVE-2026-61836
Code Behaviors & Features
Detect and mitigate CVE-2026-61836 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →