LiveActive security incident?Get immediate response
CVE Record

CVE-2026-73069: Twenty: SQL Injection in the `searchVector` Field Settings Allows Arbitrary PostgreSQL Execution

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.

CriticalCVSS 9.1Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

A privileged Twenty workspace administrator can abuse field settings to make the CRM database execute unauthorized SQL. Successful exploitation could expose, alter, or destroy CRM data and may affect resources accessible to Twenty’s database account. Twenty versions before 2.15.0 are affected; version 2.15.0 fixes the issue.

Executive priority

Treat affected deployments as an urgent patching priority, especially where many administrators hold DATA_MODEL permission or CRM data is sensitive. Upgrade promptly, review privileged access, and investigate suspicious searchVector schema changes. Immediate incident declaration is not justified solely by this record because active exploitation is not established.

Technical view

CVE-2026-73069 is a CWE-89 SQL injection in Twenty. An administrator with DATA_MODEL permission can place an unsafe expression in the system searchVector field through the REST or GraphQL update interface. The server concatenates that input into a PostgreSQL generated-column definition, enabling arbitrary statements under the application database user. CVSS 3.1 is 9.1.

Likely exposure

Exposure requires Twenty earlier than 2.15.0 and an account holding workspace-administrator DATA_MODEL permission. Network-accessible metadata interfaces provide the vulnerable path, but the source bundle does not establish anonymous or low-privilege exploitation. Impact depends on the permissions assigned to Twenty’s PostgreSQL application user.

Exploitation context

The provided record is not marked as CISA KEV, and the supplied sources do not report active exploitation. Exploitation requires high privileges but has low complexity once those privileges are held. Risk is therefore concentrated around compromised, malicious, or excessively privileged administrator accounts.

Researcher notes

The vulnerable sink is buildSqlColumnDefinition, where settings.asExpression reaches a GENERATED ALWAYS AS expression without adequate escaping. Reported entry points are PATCH /rest/metadata/fields/:id and the updateOneField GraphQL mutation. The fixed release is 2.15.0. The bundle does not describe public exploit availability, observed attacks, or exact database privilege boundaries.

Mitigation direction

  • Upgrade Twenty to version 2.15.0 or later.
  • Restrict DATA_MODEL permission to administrators who require it.
  • Review vendor guidance before applying compensating controls or backports.
  • Limit the Twenty database account to necessary PostgreSQL privileges.
  • Temporarily restrict metadata field updates if upgrading cannot occur promptly.

Validation and detection

  • Inventory all Twenty deployments and confirm their running versions.
  • Verify upgraded instances report version 2.15.0 or later.
  • Review accounts and roles holding DATA_MODEL permission.
  • Inspect metadata changes involving the system searchVector field or expression settings.
  • Review database and application logs for unusual schema changes or SQL errors.
  • Confirm the PostgreSQL application user has only required privileges.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-89: Database access and collection lookup

Injection into data stores can inform collection, data access, and exfiltration detection reviews. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Database behavior lookup

The CVE wording references database injection or access, so collection and exfiltration review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-73069 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.1 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
4Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.1CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H2.36GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.1Critical
CVSS 3.1 vector shape for CVE-2026-73069Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
twentyhqtwenty< 2.15.0Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.