Vulnerability · Published Aug 12, 2026 · Assigned by GitHub_M

CVE-2026-73427Trix: XSS via JSON deserialization bypass in drag-and-drop (Level0InputController)

Low 2.1

In plain English

A low-severity cross-site scripting in trix from basecamp. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.6% (higher than 48% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 4.0)2.1Low
Exploit odds (30 days)0.6%top 52.4% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

Trix is a what-you-see-is-what-you-get rich text editor for everyday writing. Prior to 2.1.18, Trix is vulnerable to cross-site scripting when a crafted application/x-trix-document JSON payload is dropped into an editor using the fallback Level0InputController, such as an embedded WebView without Input Events Level 2 support. The StringPiece.fromJSON method trusts href attributes from the JSON payload without sanitization, allowing a draggable element containing a javascript: URI to bypass DOMPurify sanitization and inject executable JavaScript into the DOM. Exploitation requires the victim to drag and drop attacker-controlled content, and server-side HTML sanitization can neutralize the payload on save. This issue is fixed in version 2.1.18.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
RubyGemsaction_text-trix2.1.18GHSA-53p3-c7vp-4mcc
npmtrix2.1.18GHSA-53p3-c7vp-4mcc

Affected products (as reported)

VendorProductVersions
basecamp trix < 2.1.18

Weakness: CWE-79 · Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

References