CVE 8.7 HIGH

Twenty: Stored Cross-Site Scripting via Unsanitized File Serving (Missing Content-Type/Content-Disposition Headers)_CVE-2026-44729

8.7 / 10
HIGH
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N

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.

AI Analysis

Stored Cross-Site Scripting via unsanitized file serving due to missing Content-Type and Content-Disposition headers

Basic Information

ID CVE-2026-44729
Source GitHub_M
Published May 26, 2026 at 16:56

Affected Product

Vendor twentyhq
Product twenty
Version <= 1.18.0
Affected Versions twentyhq twenty <= 1.18.0

CWE Classification

AI Assessment

AI Score 8.7 / 10
AI Severity High
Vendor TwentyHQ
Product Twenty CRM
Version <= 1.18.0

References

💭 Join the Security Discussion

🔒 Your email address will not be published. Required fields are marked *

⚠️ Please be respectful and constructive in your comments. Security discussions should remain professional.