Skip to content
Heist/ feed
Back to feed
High

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

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-44729
Confirmed fixed CVEs
Not specified
Updated in this feed
8 Nov 2026, 01:17 UTC · Revision 1

Source evidence

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

core-osv · Original source

Published 26 May 2026, 16:56 UTC

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.

osv:CVE-2026-44729
Complete source record
{
  "id": "31f919bc22fa6c2c4b16eb823abf7e54d57e50c99ac0bc4def553681c8c6ab73",
  "url": "https://osv.dev/vulnerability/CVE-2026-44729",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Twenty: Stored Cross-Site Scripting via Unsanitized File Serving (Missing Content-Type/Content-Disposition Headers)",
    "summary": "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.",
    "evidence": "osv:CVE-2026-44729",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-44729",
      "aliases": [
        "CVE-2026-44729",
        "GHSA-f5h2-3qw5-3qp7"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/twentyhq/twenty",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "38a49650a38825f21213bca45c76be46d0535504"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "1.18.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:twenty:twenty:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "1.18.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.17.0",
            "v1.18.0",
            "v1.16.16",
            "v1.16.15",
            "v1.16.14",
            "v1.16.13",
            "v1.16.10",
            "v1.16.9",
            "v1.16.0",
            "v1.15.10",
            "v1.15.9",
            "v1.15.8",
            "v1.15.7",
            "v1.15.3",
            "v1.15.0",
            "v1.14.2",
            "v1.14.1",
            "v1.14.0",
            "v1.13.11",
            "v1.13.10",
            "v1.13.9",
            "v1.13.8",
            "v1.13.3",
            "v1.13.2",
            "v1.13.1",
            "v1.13.0",
            "v1.12.18",
            "v1.12.17",
            "v1.12.15",
            "v1.12.14",
            "v1.12.13",
            "v1.12.12",
            "v1.12.8",
            "v1.12.7",
            "v1.12.6",
            "v1.12.5",
            "v1.12.4",
            "v1.12.3",
            "v1.12.0",
            "v1.11.14",
            "v1.11.6",
            "v1.11.5",
            "v1.11.4",
            "v1.11.3",
            "v1.11.0",
            "v1.10.7",
            "v1.10.6",
            "v1.10.5",
            "v1.10.4",
            "v1.10.3",
            "v1.10.2",
            "v1.10.0",
            "v1.8.11",
            "v1.8.10",
            "v1.8.9",
            "v1.8.8",
            "v1.8.7",
            "v1.8.6",
            "v1.8.5",
            "v1.8.4",
            "v1.8.3",
            "v1.8.2",
            "v1.8.1",
            "v1.8.0",
            "v1.7.10",
            "v1.7.9",
            "v1.7.8",
            "v1.7.7",
            "v1.7.6",
            "v1.7.3",
            "v1.7.2",
            "v1.7.1",
            "v1.7.0",
            "v1.6.8",
            "v1.6.0",
            "v1.5.0",
            "v1.4.11",
            "v1.4.10",
            "v1.4.9",
            "v1.4.8",
            "v1.4.7",
            "v1.4.5",
            "v1.4.4",
            "v1.4.3",
            "v1.4.2",
            "v1.4.1",
            "v1.4.0",
            "v1.3.1",
            "v1.3.0",
            "v1.2.0",
            "v1.1.0",
            "v1.0.4",
            "v1.0.0",
            "v0.60.7",
            "v0.60.6",
            "v0.60.5",
            "v0.60.4",
            "v0.60.2",
            "v0.55.7",
            "v0.55.5",
            "v0.55.4",
            "v0.55.3",
            "v0.55.2",
            "v0.55.0",
            "v0.54.7",
            "v0.53.7",
            "v0.53.6",
            "v0.53.5",
            "v0.53.4",
            "v0.53.2",
            "v0.53.0",
            "v0.51.11",
            "v0.51.10",
            "v0.44.9",
            "v0.31.0",
            "v0.30.0",
            "v0.24.1",
            "v0.24.0",
            "v0.23.2",
            "v0.23.1",
            "v0.22.1",
            "v0.22.0",
            "v0.21.2",
            "v0.21.0",
            "v0.21",
            "v0.20.2",
            "v0.20.1",
            "v0.20.0",
            "v0.12.2",
            "v0.12.1",
            "v0.12.0",
            "v0.11.3",
            "v0.11.2",
            "v0.11.1",
            "v0.11.0",
            "v0.10.6",
            "v0.10.5",
            "v0.10.4",
            "v0.10.3",
            "v0.10.2",
            "v0.10.1",
            "v0.10.0",
            "v0.4.0",
            "v0.3.3",
            "v0.2.2",
            "v0.2.1",
            "v0.1.4",
            "v0.1.3",
            "v0.1.2",
            "v0.1.1",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44729.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:52.525308569Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44729.json",
        "https://github.com/twentyhq/twenty/security/advisories/GHSA-f5h2-3qw5-3qp7",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-44729"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44729.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-44729",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 521268,
  "published_at": "2026-05-26T16:56:06.012+00:00"
}