CVE-2025-53889

6.5 MEDIUM

📋 TL;DR

Directus versions 9.12.0 through 11.8.0 have an authentication bypass vulnerability in manual trigger Flows. Attackers can execute Flows without proper permissions, potentially performing unauthorized operations on database collections. Users with manual trigger Flows configured are affected.

💻 Affected Systems

Products:
  • Directus
Versions: 9.12.0 through 11.8.0
Operating Systems: all
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects instances with manual trigger Flows configured. Webhook Flows are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise through unauthorized data manipulation, deletion, or privilege escalation via malicious Flow execution.

🟠

Likely Case

Unauthorized data access or modification in collections accessible through vulnerable Flows.

🟢

If Mitigated

Limited impact with proper network segmentation and minimal Flow permissions.

🌐 Internet-Facing: HIGH - Directus instances exposed to the internet are directly vulnerable to unauthenticated attacks.
🏢 Internal Only: MEDIUM - Internal attackers or compromised accounts could exploit this for privilege escalation.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires identifying manual trigger Flow endpoints and crafting appropriate payloads.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 11.9.0

Vendor Advisory: https://github.com/directus/directus/security/advisories/GHSA-7cvf-pxgp-42fc

Restart Required: Yes

Instructions:

1. Backup your Directus instance and database. 2. Update Directus to version 11.9.0 or later. 3. Restart the Directus service. 4. Verify all manual trigger Flows still function correctly with proper authentication.

🔧 Temporary Workarounds

Implement manual permission checks

all

Add explicit permission validation in Flow configurations to check user access to directus_flows and relevant collections/items.

Disable manual trigger Flows

all

Temporarily disable all manual trigger Flows until patching is complete.

🧯 If You Can't Patch

  • Implement network-level access controls to restrict access to Directus Flow endpoints
  • Review and audit all manual trigger Flows for sensitive operations and implement additional validation logic

🔍 How to Verify

Check if Vulnerable:

Check Directus version via admin panel or API. If version is between 9.12.0 and 11.8.0 and manual trigger Flows are configured, the instance is vulnerable.

Check Version:

curl -X GET 'http://directus-host/admin/version' or check in Directus admin interface

Verify Fix Applied:

After updating to 11.9.0+, test manual trigger Flows with unauthorized users to confirm authentication is now required.

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized access attempts to /flows/trigger endpoints
  • Manual trigger Flow executions from unauthenticated or low-privilege users

Network Indicators:

  • HTTP requests to /flows/trigger/* endpoints without proper authentication headers

SIEM Query:

source="directus" AND (uri_path="/flows/trigger" OR uri_path="/flows/trigger/*") AND (http_status=200 OR http_status=201) AND NOT (user_role="admin" OR user_role="authenticated")

🔗 References

📤 Share & Export