CVE-2026-55583: Twenty CRM Cross-Workspace IDOR in AI Agent Monitor (CVSS 7.6)
Twenty, an open-source CRM platform, contains a flaw that allows authenticated users to view and manipulate AI agent data belonging to other workspaces on the same server instance. A workspace owner or user with AI settings enabled can access another workspace's chat history, tool interactions, and AI turn evaluations by knowing the victim's AI agent ID or turn ID—both of which are exposed in the application's settings page URL. This affects versions prior to 2.9.0.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.6 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N
- Weaknesses (CWE)
- CWE-639
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-06-25
NVD description (verbatim)
Twenty is an open-source CRM (customer relationship management) platform. Prior to 2.9.0, Twenty was vulnerable to a cross-workspace insecure direct object reference (IDOR) in the AI agent monitor's AgentTurnResolver, in packages/twenty-server/src/engine/metadata-modules/ai/ai-agent-monitor/reso lvers/agent-turn.resolver.ts. The agentTurns(agentId) query and the evaluateAgentTurn(turnId) mutation looked up rows by agentId or id only; although AgentTurnEntity has a workspaceId column, it was not included in the WHERE clause, and the class-level guards only checked that the caller was authenticated in some workspace rather than that the requested object belonged to it, with the same flaw present in agent-turn-grader.service.ts. As a result, any authenticated user with the AI settings flag, a workspace owner by default, could target any other workspace on the same instance given the victim's agentId or turnId: agentTurns returned the victim's full chat history including message parts such as raw chat text, tool calls, and tool outputs, while evaluateAgentTurn inserted an agentTurnEvaluation row with the victim's workspaceId and fed the victim's turn into the default LLM. The agentId and turnId are non-guessable UUIDs but are exposed in the URL of the settings page. This issue is fixed in version 2.9.0.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability is an insecure direct object reference (IDOR) in Twenty's AI agent monitor, specifically in the AgentTurnResolver and agent-turn-grader service. The agentTurns(agentId) GraphQL query and evaluateAgentTurn(turnId) mutation perform database lookups using only agentId or id parameters, omitting the workspaceId in their WHERE clauses. Although AgentTurnEntity contains a workspaceId column, it is not enforced during retrieval. The class-level authentication guards verify only that a caller is authenticated within some workspace, not that the requested object belongs to that caller's workspace. This allows any authenticated user to craft queries targeting other workspaces' agent IDs or turn IDs—non-guessable UUIDs that are nonetheless exposed in URL parameters on the settings page. Successful exploitation returns sensitive chat histories including raw messages, tool calls, and outputs, and allows insertion of evaluations into a victim's workspace via the default LLM.
Business impact
Organizations using Twenty as their CRM face exposure of confidential customer communications and AI-driven agent interactions. Since the AI agent monitor is available to workspace owners by default, any owner can pivot to access competitors' or other tenants' data on shared instances. Multi-tenant deployments are at highest risk. Compromised chat histories may reveal customer names, conversation context, and business logic, while unauthorized turn evaluations could introduce false or malicious LLM assessments into victim workflows. This undermines tenant isolation and data confidentiality in SaaS deployments.
Affected systems
Twenty CRM versions prior to 2.9.0 are vulnerable. The flaw requires an authenticated user account with the AI settings flag enabled, a privilege that defaults to workspace owners. Multi-tenant instances are more severely affected than single-tenant deployments. The vulnerability does not require special network access; any authenticated user on the same instance can exploit it.
Exploitability
Exploitation is straightforward and requires minimal technical skill. An attacker needs valid credentials in any workspace and the AI settings flag. The attack surface is passive discovery of agentId and turnId via the settings page URL, followed by crafted GraphQL queries. No user interaction is required beyond authentication. The non-guessable nature of UUIDs provides only obfuscation; once IDs are known, access is immediate. The CVSS score of 7.6 (HIGH) reflects the combination of low attack complexity, low privilege requirements relative to the sensitive data exposed, and high confidentiality impact, tempered by limited integrity risk.
Remediation
Upgrade to Twenty version 2.9.0 or later. This version corrects the database queries and authentication guards to enforce workspace membership validation. Ensure that all agentTurns and evaluateAgentTurn operations verify that the caller's workspace matches the target object's workspaceId before returning or modifying data. If immediate patching is not possible, restrict the AI settings flag to a minimal set of trusted users and audit workspace access logs for cross-workspace query attempts.
Patch guidance
Apply the patch in version 2.9.0 by updating your Twenty installation following the vendor's upgrade procedures. Verify that the patched AgentTurnResolver and agent-turn-grader.service.ts files now include workspaceId validation in all database WHERE clauses and that guard checks confirm workspace ownership, not just authentication state. Test the fix by confirming that authenticated users cannot access agentTurns or turns belonging to other workspaces. Consider running a post-patch audit to check logs for suspicious cross-workspace queries prior to the upgrade.
Detection guidance
Monitor GraphQL query logs for repeated or sequential calls to agentTurns or evaluateAgentTurn with agentId or turnId parameters that differ from the caller's own workspace. Look for patterns in which a single user queries multiple distinct agentIds or turnIds belonging to different workspace contexts. Examine access logs for users with the AI settings flag accessing agent data outside their own workspace. Check for unexpected agentTurnEvaluation rows inserted into workspaces where the calling user is not a member. If Twenty logs GraphQL operations, search for calls originating from authenticated sessions that target UUIDs outside the caller's workspace scope.
Why prioritize this
This vulnerability merits high priority because it breaks a foundational trust boundary in multi-tenant systems: workspace isolation. Any authenticated user can exploit it without additional steps, and the exposed data—customer conversations and AI interactions—is business-critical. Organizations running shared Twenty instances should patch immediately. Single-tenant deployments face lower risk but should still update to limit insider threats.
Risk score, explained
The CVSS 3.1 score of 7.6 reflects: (1) Network accessibility (AV:N) — exploitable remotely; (2) Low attack complexity (AC:L) — no special conditions required; (3) Low privilege (PR:L) — any authenticated user can exploit; (4) Required user interaction (UI:R) — the attacker must authenticate, though this is not a protection in multi-tenant environments; (5) Changed scope (S:C) — impact crosses workspace boundaries; (6) High confidentiality (C:H) — full exposure of chat history and agent interactions; (7) Low integrity (I:L) — evaluations can be inserted but core data is not modified; (8) No availability impact (A:N). The HIGH severity is justified by the cross-workspace scope and sensitivity of CRM data.
Frequently asked questions
How would an attacker discover agentIds or turnIds to target?
The agentId and turnId are non-guessable UUIDs, but they are exposed in the URL of the AI settings page. An attacker who gains access to any workspace can view these IDs in their own workspace, and similarly, any authenticated user can extract another workspace's IDs from the settings page UI if they can navigate to it. Additionally, IDs may be logged in error messages, API responses, or other observable channels. The UUIDs' apparent randomness does not prevent exploitation once known.
Does this vulnerability require admin or special privileges?
No. The AI settings flag defaults to workspace owners, but the vulnerability can be exploited by any authenticated user who has this flag enabled. It does not require system-level admin access, only a valid user account in any workspace on the same Twenty instance. In practice, most workspace owners have the flag enabled.
What is the scope of exposure in a multi-tenant instance?
In a multi-tenant instance, any authenticated user with the AI settings flag can read full chat histories, tool interactions, and raw message content from any other workspace on that instance. They can also insert evaluations into other workspaces' data. The isolation between tenants is completely bypassed for AI agent data. Single-tenant or on-premise deployments have lower risk because they typically have fewer distinct workspaces and trusted user bases.
Does patching to 2.9.0 require data cleanup?
Verify against the Twenty project's release notes and vendor advisory for any guidance on data cleanup. The patch corrects the authorization logic going forward, but it does not automatically delete unauthorized evaluations or chat accesses that occurred prior to patching. Organizations should review logs to identify if the vulnerability was exploited and consider purging unauthorized agentTurnEvaluation rows if audit findings warrant it.
This analysis is provided for informational purposes and represents our interpretation of publicly disclosed vulnerability information as of the publish date. We do not guarantee accuracy or completeness of all details. Always verify patch versions, affected product ranges, and remediation steps directly against the vendor's official advisory and release notes before making deployment decisions. SEC.co does not provide legal, operational, or compliance advice. Organizations should conduct their own risk assessment and consult with internal security teams before implementing any mitigations. Proof-of-concept code or step-by-step exploitation techniques are not provided in this document. Source: NVD (public-domain), retrieved 2026-08-02. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2025-14772HIGHABB T-MAC Plus Authorization Bypass (CVSS 8.8)
- CVE-2025-59133HIGHProjectopia Custom Role IDOR Vulnerability (7.5 CVSS)
- CVE-2026-12204HIGHShopXO Authorization Bypass in Order & Payment Processing
- CVE-2026-33760HIGHLangflow BOLA Vulnerability Allows Cross-User Data Access
- CVE-2026-40768HIGHUnauthenticated IDOR in Salon Booking System ≤10.30.24 – HIGH Severity
- CVE-2026-41084HIGHApache Airflow Task Instances API Authorization Bypass
- CVE-2026-42863HIGHFlowiseAI Mass Assignment Vulnerability in Chatflow Update Endpoint
- CVE-2026-42947HIGHNaxclow Device Takeover Vulnerability – Silent Unauthorized Reassignment