CVE-2026-47419: praisonai-platform: IDOR enables cross-workspace agent read/write/delete
GHSA-7p8g-6c6g-h9w7 HIGH CISA: ATTENDPraisonAI Platform before 0.1.4 has a broken object-level authorization flaw where any authenticated workspace member can read, modify, or delete AI agents belonging to entirely different tenants by substituting a foreign agent UUID in the API path — no elevated privileges or special tooling required. The exposed data includes proprietary system prompt instructions and `runtime_config` fields that frequently carry LLM provider API keys in bring-your-own-key deployments, making this a direct credential exfiltration vector that also enables silent agent backdooring by redirecting all LLM traffic to an attacker-controlled endpoint. The same PraisonAI repository carries 66 other CVEs, signalling systemic authorization hygiene problems across the codebase, and exploitation complexity is trivial given that agent UUIDs leak through activity feeds, webhook payloads, and error messages. Patch to 0.1.4 immediately, rotate any API keys stored in agent runtime configurations, and audit access logs for cross-workspace UUID patterns.
What is the risk?
High risk in any multi-tenant PraisonAI Platform deployment. Exploitation requires only a valid workspace membership token and one harvested agent UUID — both easily obtainable. CVSS 8.1 reflects network-accessible attack vector, low complexity, low privileges required, and high confidentiality and integrity impact. The absence of a workspace predicate in the DB query means the membership check is purely cosmetic, providing no actual tenant isolation. BYOK deployments elevate the effective impact further by exposing LLM provider API keys. No CISA KEV listing or public exploit code observed at time of analysis, but the exploit chain is fully deterministic and requires no AI/ML expertise.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | — | No patch |
| PraisonAI | pip | < 0.1.4 | 0.1.4 |
| PraisonAI Agents | pip | — | No patch |
How severe is it?
What is the attack surface?
What should I do?
6 steps-
Patch to praisonai-platform >= 0.1.4 immediately. The fix threads
workspace_idinto theAgentService.get/update/deletemethods so the DB query includes anAND workspace_id = :workspace_idpredicate, treating foreign-workspace agents as 404. -
If patching is not immediately possible, disable multi-workspace deployments or place the agent CRUD API behind a network control that limits access to trusted tenants.
-
Rotate all LLM API keys stored in agent
runtime_configfields as a precaution — assume any key in any workspace could have been read. -
Review application access logs for API calls where
workspace_idin the path does not match theworkspace_idof the returned agent. -
Audit IssueService, ProjectService, CommentService, and LabelService for the same missing workspace predicate pattern; treat those as unpatched until separately confirmed fixed.
-
Enable alerting on anomalous cross-tenant UUID access patterns going forward.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-47419?
PraisonAI Platform before 0.1.4 has a broken object-level authorization flaw where any authenticated workspace member can read, modify, or delete AI agents belonging to entirely different tenants by substituting a foreign agent UUID in the API path — no elevated privileges or special tooling required. The exposed data includes proprietary system prompt instructions and `runtime_config` fields that frequently carry LLM provider API keys in bring-your-own-key deployments, making this a direct credential exfiltration vector that also enables silent agent backdooring by redirecting all LLM traffic to an attacker-controlled endpoint. The same PraisonAI repository carries 66 other CVEs, signalling systemic authorization hygiene problems across the codebase, and exploitation complexity is trivial given that agent UUIDs leak through activity feeds, webhook payloads, and error messages. Patch to 0.1.4 immediately, rotate any API keys stored in agent runtime configurations, and audit access logs for cross-workspace UUID patterns.
Is CVE-2026-47419 actively exploited?
No confirmed active exploitation of CVE-2026-47419 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-47419?
1. Patch to praisonai-platform >= 0.1.4 immediately. The fix threads `workspace_id` into the `AgentService.get/update/delete` methods so the DB query includes an `AND workspace_id = :workspace_id` predicate, treating foreign-workspace agents as 404. 2. If patching is not immediately possible, disable multi-workspace deployments or place the agent CRUD API behind a network control that limits access to trusted tenants. 3. Rotate all LLM API keys stored in agent `runtime_config` fields as a precaution — assume any key in any workspace could have been read. 4. Review application access logs for API calls where `workspace_id` in the path does not match the `workspace_id` of the returned agent. 5. Audit IssueService, ProjectService, CommentService, and LabelService for the same missing workspace predicate pattern; treat those as unpatched until separately confirmed fixed. 6. Enable alerting on anomalous cross-tenant UUID access patterns going forward.
What systems are affected by CVE-2026-47419?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, multi-tenant AI platforms, LLM API integrations, BYOK LLM deployments.
What is the CVSS score for CVE-2026-47419?
CVE-2026-47419 has a CVSS v3.1 base score of 8.3 (HIGH). The EPSS exploitation probability is 0.30%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0048.004 AI Intellectual Property Theft AML.T0049 Exploit Public-Facing Application AML.T0081 Modify AI Agent Configuration AML.T0083 Credentials from AI Agent Configuration AML.T0084 Discover AI Agent Configuration Compliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI Platform is the platform layer for the PraisonAI multi-agent teams system. Versions prior to 0.1.4 have an* Insecure Direct Object Reference. The agent CRUD endpoints (`GET / PATCH / DELETE /workspaces/{workspace_id}/agents/{agent_id}`) gate access on `require_workspace_member(workspace_id)` only, then resolve `agent_id` through `AgentService.get(agent_id)` which is a primary-key lookup with no workspace constraint. A user who is a member of any workspace `W1` can read, modify, or delete agents that belong to a different workspace `W2` by guessing or harvesting an agent UUID and calling `…/workspaces/W1/agents/<W2-agent-id>`. PraisonAI Platform version 0.1.4 patches the issue.
Exploitation Scenario
An attacker registering as a trial user on a shared PraisonAI Platform SaaS deployment creates their own workspace and receives a valid JWT. They then harvest agent UUIDs belonging to a target tenant's workspace by monitoring the platform's activity feed (which logs `entity_id=agent.id` entries visible to any authenticated user), intercepting webhook payloads, or reading error messages that echo the UUID. Armed with a target UUID `A_T`, the attacker issues `GET /workspaces/<attacker_workspace>/agents/A_T` — the membership check passes because they are a member of their own workspace, and `AgentService.get(A_T)` executes `SELECT * FROM agents WHERE id = 'A_T'` with no workspace filter, returning the full agent record including proprietary system prompt and API keys. The attacker follows with a `PATCH` overwriting `instructions` with a prompt injection payload and `runtime_config.api_base` pointing to their own logging proxy, silently backdooring every future LLM interaction in the victim's workspace without any visible error or alert.
Weaknesses (CWE)
CWE-639 Authorization Bypass Through User-Controlled Key
Primary
CWE-639 Authorization Bypass Through User-Controlled Key
Primary
CWE-639 Authorization Bypass Through User-Controlled Key CWE-639 — Authorization Bypass Through User-Controlled Key: The system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data.
- [Architecture and Design] For each and every data access, ensure that the user has sufficient privilege to access the record that is being requested.
- [Architecture and Design, Implementation] Make sure that the key that is used in the lookup of a specific user's record is not controllable externally by the user or that any tampering can be detected.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L References
Timeline
Related Vulnerabilities
CVE-2026-61447 10.0 PraisonAI: RCE via unsandboxed LLM code execution
Same package: praisonai CVE-2026-61445 9.9 PraisonAI: AICoder root RCE via unsanitized tool calls
Same package: praisonai CVE-2026-47392 9.9 praisonaiagents: RCE via Python sandbox bypass
Same package: praisonai GHSA-vmmj-pfw7-fjwp 9.9 praisonai: sandbox escape gives RCE via codeMode tool
Same package: praisonai GHSA-vc46-vw85-3wvm 9.8 PraisonAI: RCE via malicious workflow YAML execution
Same package: praisonai