CVE-2025-30353 — directus
HIGHCVE-2025-30353 is a high-severity (CVSS 8.6) Information Exposure vulnerability in directus. A fix is available for directus — see the affected versions and patch details below.
Directus's webhook trigger flows can leak sensitive data
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
Exploitation and automatability from CISA’s SSVC triage for CVE-2025-30353.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.
directusnpmDescription
Describe the Bug
In Directus, when a Flow with the "Webhook" trigger and the "Data of Last Operation" response body encounters a ValidationError thrown by a failed condition operation, the API response includes sensitive data. This includes environmental variables, sensitive API keys, user accountability information, and operational data.
This issue poses a significant security risk, as any unintended exposure of this data could lead to potential misuse.
To Reproduce
Steps to Reproduce:
- Create a Flow in Directus with:
- Trigger: Webhook
- Response Body: Data of Last Operation
- Add a condition that is likely to fail.
- Trigger the Flow with any input data that will fail the condition.
- Observe the API response, which includes sensitive information like:
- Environmental variables (
$env) - Authorization headers
- User details under
$accountability - Previous operational data.
- Environmental variables (
Expected Behavior: In the event of a ValidationError, the API response should only contain relevant error messages and details, avoiding the exposure of sensitive data.
Actual Behavior: The API response includes sensitive information such as:
- Environment keys (
FLOWS_ENV_ALLOW_LIST) - User accountability (
role,user, etc.) - Operational logs (
current_payments,$last), which might contain private details.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | directus | ≥ 9.12.0&&< 11.5.0 | 11.5.0npm install directus@11.5.0 |
Affected Products
directusmonospaceDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for directus, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update directus to 11.5.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2025-30353 is resolved across your whole dependency graph.
Workarounds
Assume what was exposed is already known: rotate any credential, token or key that the affected component could return, restrict the endpoint to callers that genuinely need it, and strip sensitive fields from responses and error output at the boundary rather than relying on the client not to read them.
Frequently Asked Questions
Is CVE-2025-30353 in your dependencies?
Find it across npm, including transitive dependencies.