Executive brief
Directus is a flexible backend platform that transforms databases into headless CMS and API systems. An attacker can send a single GraphQL request using field aliases to trigger an expensive health check resolver multiple times, exhausting database connections, storage I/O, and SMTP resources without authentication. This can cause service outage, preventing all users from accessing the system.
Technical details
The vulnerability exploits GraphQL alias specification behavior, where each alias in a single query normally resolves independently. Directus failed to deduplicate resolver invocations within a single request, causing the health check resolver to execute fully for each alias despite identical arguments. The health check resolver performs expensive operations including database connectivity verification, cache checks, storage writes, and SMTP verification. An unauthenticated attacker can craft a request with numerous aliases invoking the same resolver, amplifying resource consumption significantly from a single HTTP request. The fix introduces request-scoped resolver deduplication so identical invocations share results, eliminating the amplification factor. This was patched in version 11.17.0.
Affected products
- Directus Directus before 11.17.0
Timeline
- 2026-04-04: disclosed
- 2026-04-04: patched: version 11.17.0