Ad

CVE-2026-55583

HIGH CVSS 3.1: 7,6 EPSS 0.26%
Обновлено 25 июня 2026
Twenty
Параметр Значение
CVSS 7,6 (HIGH)
Устранено в версии 2.9.0
Тип уязвимости CWE-639 (Обход авторизации)
Поставщик Twenty
Публичный эксплойт Нет

Twenty — это CRM-платформа с открытым исходным кодом (управление взаимоотношениями с клиентами). До версии 2.9.0 Twenty была уязвима к небезопасной прямой ссылке на объект (IDOR) между рабочими пространствами в AgentTurnResolver монитора агента AI, в packages/twenty-server/src/engine/metadata-modules/ai/ai-agent-monitor/reso lvers/agent-turn.resolver.ts. Запрос AgentTurns(agentId) и мутация AssessmentAgentTurn(turnId) искали строки только по идентификатору агента или идентификатору; хотя у AgentTurnEntity есть столбец workspaceId, он не был включен в предложение WHERE, а средства защиты на уровне класса проверяли только то, что вызывающий объект был аутентифицирован в некоторой рабочей области, а не принадлежность запрошенного объекта ему, с тем же недостатком, присутствующим в агенте-turn-grader.service.ts.

В результате любой аутентифицированный пользователь с флагом настроек AI, который по умолчанию является владельцем рабочего пространства, может ориентироваться на любое другое рабочее пространство в том же экземпляре, учитывая идентификатор агента жертвы или идентификатор TurnId жертвы: агентTurns возвращал полную историю чата жертвы, включая части сообщений, такие как необработанный текст чата, вызовы инструментов и выходные данные инструментов, в то время как AssessmentAgentTurn вставлял строку AgentTurnEvaluation с идентификатором рабочего пространства жертвы и передавал ход жертвы в LLM по умолчанию. AgentId и TurnId — это неугадываемые UUID, но они представлены в URL-адресе страницы настроек. Эта проблема исправлена ​​в версии 2.9.0.

Показать оригинальное описание (EN)

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.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Требуется
Нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Низкое
Частичная модификация данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v3.1