Twenty — это платформа CRM (управление взаимоотношениями с клиентами) с открытым исходным кодом. До версии 2.15.0 Twenty разрешала администратору рабочей области с разрешением DATA_MODEL предоставлять settings.asExpression для системного поля TS_VECTOR searchVector через PATCH /rest/metadata/fields/:id или мутацию updateOneField GraphQL, вызывающую buildSqlColumnDefinition в packages/twenty-server/src/engine/twenty-orm/workspace-schema-manager/utils/build-sql-column-definition.util.ts для объединения неэкранированных входных данных в GENERATED ALWAYS AS (...) и выполнения произвольных операторов PostgreSQL от имени пользователя базы данных приложения. Эта проблема исправлена в версии 2.15.0.
Показать оригинальное описание (EN)
Twenty is an open-source CRM (customer relationship management) platform. Prior to 2.15.0, Twenty allowed a workspace administrator with the DATA_MODEL permission to supply settings.asExpression for the system TS_VECTOR field searchVector through PATCH /rest/metadata/fields/:id or the updateOneField GraphQL mutation, causing buildSqlColumnDefinition in packages/twenty-server/src/engine/twenty-orm/workspace-schema-manager/utils/build-sql-column-definition.util.ts to concatenate unescaped input into GENERATED ALWAYS AS (...) and execute arbitrary PostgreSQL statements as the application database user. This issue is fixed in version 2.15.0.
Характеристики атаки
Последствия
Строка CVSS v3.1