Description
Twenty is an open source CRM. In 1.18.0 and earlier, the file serving endpoints in Twenty CRM at /files/* and /file/:fileFolder/:id serve uploaded files using fileStream.pipe(res) without setting any Content-Type, Content-Disposition, or X-Content-Type-Options response headers. This allows an authenticated attacker to upload an HTML file containing JavaScript, which will be rendered by the victim's browser in the context of the Twenty CRM domain when accessed — enabling session hijacking, account takeover, and data theft.
Affected products
twenty: twenty
References2
- github.com/twentyhq/twenty/security/advisories/GHSA-f5h2-3qw5-3… ExploitMitigationVendor Advisory
- github.com/twentyhq/twenty/security/advisories/GHSA-f5h2-3qw5-3… ExploitMitigationVendor Advisory
Metrics
- CVSS 3.1
-
8.7
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N - EPSS — exploit probability
- 0% percentile: 18 · as of 14 November 2026
- CWE
- CWE-79
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.