Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege tenant
-
DeliveryObtain victim agentId or memory _id
-
ExploitCall listMemories/deleteMemory/clearAgentMemory with victim identifier
-
ExecutionServer skips ownership check
-
ImpactRead, delete, or wipe victim AgentMemory
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated account on the target AI Agent Automation instance (PR:L) and knowledge or possession of another tenant's agentId or AgentMemory _id (MongoDB ObjectIds), targeting the listMemories, deleteMemory, or clearAgentMemory endpoints of backend/src/controllers/memory.controller.js in versions prior to 0.9.1. No special non-default configuration, user interaction, or elevated privileges are needed - the missing ownership check exists in the default code path. The practical limiting factor is obtaining valid victim identifiers: ObjectIds are timestamp-based and partially predictable but must still be enumerated or leaked, and the instance must be multi-tenant for cross-user impact to matter. |
| Impact | The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 8.8 High) is well-supported by the description and the fix commit: an authenticated user (PR:L) can, over the network without interaction, read, delete, or wipe another tenant's AgentMemory. The C:H/I:H/A:H triad is honest - read of victim conversation history/context/embeddings (C:H), targeted single-memory deletion (I:H), and full agent-memory clear (A:H) are all demonstrated by the patched functions (listMemories, deleteMemory, clearAgentMemory). Exploitation status: no public exploit identified at time of analysis - there is no KEV listing, no EPSS score provided, and no POC, only the fix commit and GHSA advisory. The one signal that could pull real-world risk below the 8.8 headline is the prerequisite that the attacker must 'know or obtain' another user's agentId or memory _id; these are MongoDB ObjectIds, which are semi-sequential/timestamp-derived rather than cryptographically random, so enumeration is plausible but not guaranteed - a reasonable case exists for AC:H rather than AC:L. Net: a genuine authorization/tenant-isolation break worth patching promptly for any multi-tenant deployment, but the tiny real-world footprint of this project (see prevalence) means it is not a broad, urgent internet-scale threat. |
| Exploit ScenarioDerived | An attacker registers a normal account on a shared AI Agent Automation instance, authenticates, and calls the memory endpoints supplying another tenant's agentId or memory _id (obtained via enumeration of MongoDB ObjectIds or leakage). Because the pre-0.9.1 controller never verifies the record belongs to req.user, the attacker reads the victim's conversation history, context, task data, and embeddings, then deletes or clears the victim agent's memory. No public POC exists, but the fix commit clearly reveals the missing ownership check. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 17, 2026
Authenticated cross-tenant data exposure and destruction in AI Agent Automation before 0.9.1: the backend memory controller (backend/src/controllers/memory.controller.js) authenticates requests but never verifies that a caller-supplied agentId or AgentMemory _id belongs to the requesting user, so any logged-in user who knows or obtains another tenant's MongoDB ObjectId can read full AgentMemory records (conversation history, agent context, task data, embeddings, metadata), delete a single victim memory, or wipe all memory for a victim agent. The flaw is CWE-862 (Missing Authorization) and carries a vendor CVSS 3.1 score of 8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H), requiring only a valid account (PR:L) with no special configuration or user interaction; the practical barrier is obtaining a valid victim identifier, since ObjectIds are timestamp-based and partially predictable but still must be enumerated or leaked, and meaningful cross-user impact presumes a multi-tenant deployment. No public exploit code and no confirmed active exploitation were identified at time of analysis; exploitability is limited to the identifier-acquisition step rather than any missing precondition.
RemediationAI
Vendor-released patch: upgrade AI Agent Automation to version 0.9.1, which adds ObjectId validation, derives the caller identity from req.user._id or req.user.id, and enforces Agent.findOne({_id: agentId, userId}) ownership checks across listMemories, deleteMemory, and clearAgentMemory (release: https://github.com/vmDeshpande/ai-agent-automation/releases/tag/v0.9.1; advisory: https://github.com/vmDeshpande/ai-agent-automation/security/advisories/GHSA-qv97-83w4-ff86; fix commit: https://github.com/vmDeshpande/ai-agent-automation/commit/96b31c216f6f670e64584f3623c07ac54461e703). If immediate upgrade is not possible, apply targeted compensating controls: restrict the memory endpoints listed above at the reverse proxy or API gateway so they are reachable only from trusted internal callers or a tightly scoped role - this breaks any external integration that legitimately uses the memory API and must be paired with a network allow-list; where the deployment is single-tenant or the memory API is not required, disable the memory routes entirely (accepting loss of conversation-history and context features); and treat memory identifiers as sensitive, avoiding exposure of agentId and memory _id values in logs, shared links, exports, or error messages, since identifier secrecy was the only barrier the vulnerable code provided. Rotating or reissuing identifiers offers limited benefit because MongoDB ObjectIds remain partially predictable. Note that no public exploit code and no confirmed active exploitation were identified at time of analysis, so prioritization should be driven by multi-tenancy and exposure of the memory API rather than by imminent exploitation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AI Agent Automation is a modular Node.js/Express AI agent workflow platform backed by MongoDB through Mongoose, with schedulers, tools, and an observability layer. The three affected handlers - listMemories, deleteMemory, and clearAgentMemory - sit behind authentication middleware, so req.user is populated, but the handlers trust the client-supplied agentId query parameter or memory _id path parameter as the sole filter for MongoDB queries. This is the classic CWE-862 missing-authorization pattern: authentication is enforced while object-level authorization is absent, so the tenant boundary is defined purely by an attacker-controllable identifier. The fix commit (96b31c216f6f670e64584f3623c07ac54461e703) shows the intended control: a findOwnedAgent(agentId, userId) helper that runs Agent.findOne({_id: agentId, userId}), ObjectId validation via mongoose.Types.ObjectId.isValid, 401 responses when no authenticated user id can be derived from req.user._id or req.user.id, 403 forbidden when the agent is not owned, and for the unscoped listing path a fallback that resolves all agents owned by the user and filters with {agentId: {$in: ownedAgentIds}} - returning an empty result set rather than unfiltered data when the user owns no agents. deleteMemory additionally now loads the memory's own agentId and re-validates ownership before deletion, closing the direct-_id path. Because victim identifiers are MongoDB ObjectIds (partially time-derived), isolation depended only on identifier secrecy, which is weak in a multi-tenant instance where ids can leak through logs, exports, shared URLs, or enumeration.
Know when Node.js gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable authenticated user (PR:L) exploits missing ownership check with no interaction; full read (C:H), targeted deletion (I:H), and memory-clear (A:H) all confirmed; AC:H arguable given ObjectId guessing but kept AC:L.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
AI Agent Automation is a modular AI agent workflow automation platform with schedulers, tools, and observability. Prior to 0.9.1, backend/src/controllers/memory.controller.js authenticates requests but listMemories, deleteMemory, and clearAgentMemory use a caller-supplied agentId or memory _id without verifying through the related Agent that the record belongs to req.user. An authenticated attacker who knows or obtains another user's identifiers can read victim AgentMemory content, including conversation history, agent context, task data, embeddings, and metadata, delete an individual victim memory, or clear all memory belonging to a victim agent. This breaks tenant isolation and causes unauthorized disclosure and data loss. This issue is fixed in version 0.9.1.
Technical POC Analysis
CWE-862 (Missing Authorization) in the application's own controller code, not in a third-party library.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-54519 affects multi-tenant deployments of AI Agent Automation running versions prior to 0.9.1, where any authenticated user can read, delete, or entirely wipe another customer's agent memory - including conversation history, task data, and embeddings - simply by supplying a victim tenant's identifier. Because agent memory frequently holds proprietary business context and customer interaction data, a single enumerated identifier can produce both confidentiality loss and irreversible data destruction across tenant boundaries, eroding customer trust and potentially triggering contractual or regulatory obligations. No vendor-released patch is identified at time of analysis, so leadership should prioritize scoping multi-tenant exposure and deploying interim authorization controls.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict memory controller endpoint exposure to trusted networks or an authenticating gateway; enforce tenant-scoped ownership checks on agentId and AgentMemory _id at the proxy or application layer; reduce memory-API access to least-privilege accounts; enable monitoring and alerting for identifier enumeration and anomalous delete operations; maintain immutable backups of agent memory stores to enable recovery from destructive actions; and segregate tenants where architecture permits.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
EUVD-2026-82580
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB