Description
Twenty is an open-source CRM (customer relationship management) platform. Prior to 2.22.0, field-level read permission is enforced on selected output fields but not on GraphQL or REST filter predicates. A workspace member or API key with permission to read an object but not a particular field can reference that denied field in direct filters, relation filters, or persisted view filters. The resulting totalCount and row presence reveal whether guesses match the real column, forming a boolean/count oracle that can reconstruct denied field values for records exposed by the principal's row-level policy. This issue is fixed in version 2.22.0.
Published: 2026-09-22
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: Information Disclosure
Action: Immediate Patch
AI Analysis

Impact

Twenty, an open‑source CRM platform, does not enforce field‑level read permissions on GraphQL or REST filter predicates in versions prior to 2.22.0. As a result, a user who can read an object but not a particular field can reference that denied field in direct filters, relation filters, or persisted view filters. The API then returns counts or row presence that reveal whether the guessed values match the real column, effectively creating a boolean/count oracle. An attacker can use this oracle to reconstruct denied field values for records covered by the requester's row‑level policy. This flaw leads to unauthorized disclosure of sensitive data and is classified under CWE‑200 and CWE‑285.

Affected Systems

The vulnerability affects all installations of the Twenty CRM product manufactured by twentyhq that run any release before v2.22.0. Any user or API key that has permission to read an object but not a specific field is potentially able to exploit the flaw if they can craft the prohibited filter queries.

Risk and Exploitability

The CVSS score of 7.1 indicates moderate‑to‑high severity. The EPSS score is not available, suggesting limited data on exploit probability, but the vulnerability is not listed in CISA's KEV catalog, implying no known widespread exploitation. The attack vector is likely via GraphQL or REST APIs where an attacker with legitimate read access sends crafted filter queries. Because the flaw relies on logical inference rather than a direct code execution path, successful exploitation requires iterative querying and analysis of query responses, which is achievable remotely but may require some effort to reconstruct full field values.

Generated by OpenCVE AI on September 22, 2026 at 16:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Deploy the Twenty v2.22.0 patch or later as soon as possible.
  • If an immediate upgrade is not feasible, restrict workspace members or API keys to only the fields they truly need, and review or temporarily disable filter predicates that allow reference to denied fields. 
  • Monitor API logs for repeated patterns of count or boolean inference requests and block or throttle suspicious queries.

Generated by OpenCVE AI on September 22, 2026 at 16:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 22 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Description Twenty is an open-source CRM (customer relationship management) platform. Prior to 2.22.0, field-level read permission is enforced on selected output fields but not on GraphQL or REST filter predicates. A workspace member or API key with permission to read an object but not a particular field can reference that denied field in direct filters, relation filters, or persisted view filters. The resulting totalCount and row presence reveal whether guesses match the real column, forming a boolean/count oracle that can reconstruct denied field values for records exposed by the principal's row-level policy. This issue is fixed in version 2.22.0.
Title Twenty: Field-level read bypass
Weaknesses CWE-200
CWE-285
References
Metrics cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-22T15:20:22.774Z

Reserved: 2026-09-02T21:21:01.773Z

Link: CVE-2026-85055

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-22T16:18:03.990

Modified: 2026-09-22T16:18:03.990

Link: CVE-2026-85055

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T17:00:12Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-285

    Improper Authorization