CVE-2026-105763 remediation runbook: patching Twenty CRM and rotating what leaked
This is a working sequence for teams that run Twenty CRM and need to close CVE-2026-105763. The flaw exposed mailbox passwords in cleartext to any workspace member, so the runbook covers both the software fix and the credential work that the software fix cannot do for you.
Step 1: confirm scope
Determine the installed version. Twenty 1.20.10 up to, but not including, 2.7.0 is affected, and that includes all 2.6.x releases. Versions 1.20.9 and earlier are not affected.
Then check how mail is connected. Workspaces using only Google or Microsoft OAuth for mail stored no mailbox password and were not exposed. Instances using IMAP, SMTP or CalDAV with a stored credential were.
Step 2: patch
Upgrade to Twenty 2.7.0 or later. The release hides the exposed field, scopes connected account lookups to the caller and encrypts credentials at rest. Because it changes how connected accounts are stored, treat it as a migration: back up the database, read the connected account section of the release notes, and schedule a window.
Step 3: verify the fix
After the upgrade, confirm three behaviours. The /metadata connectedAccounts response should no longer carry credential material. Lookups should return only the caller's own connections. Stored credentials should be encrypted at rest.
Then test end to end. Send through a connected SMTP account and read through IMAP or CalDAV to prove the migration preserved working connections.
Step 4: rotate at the provider
Rotate the password for every mailbox that was connected to an affected workspace. Perform the change at the mail host, not inside Twenty, because the CRM change does not invalidate a password that has already been read. Revoke app-specific passwords and long-lived SMTP credentials issued for those mailboxes at the same time.
Step 5: follow the recovery path
For each rotated mailbox, list the services that use it as a password recovery address. Review those accounts for reset notifications and sessions that cannot be explained. If the mailbox is a shared one, coordinate the review with the team that owns it.
Step 6: narrow the reader population
The flaw required only the default Member role, so the set of potential readers equals the workspace membership during the exposure window. Remove accounts that no longer need access, and decide whether the instance should be reachable from the internet at all.
Step 7: capture the evidence you have
GraphQL operations share a path and a verb, so URL-based rules will not have flagged anything. If you retained operation names or query bodies, review requests for connectedAccounts. If you did not, record the limitation honestly in the incident record.
Exposure context
A ZoomEye query for app="Twenty" returned 7,405 assets and title="Twenty" returned 7,100; vul.cve="CVE-2026-105763" returned zero. These are fingerprint matches on reachable assets, not counts of vulnerable builds, and the zero reflects CVE indexing rather than absence of exposure.
References
- Twenty CRM flaw CVE-2026-105763 exposes plaintext email passwords to any workspace member: https://securityonline.info/twenty-crm-vulnerability-cve-2026-105763/
- Vendor security advisory referenced by the collected report (Twenty CRM GitHub security advisories).
Top comments (0)