GitHub Advisoryadvisory · npm, RubyGems

GHSA-53p3-c7vp-4mcc Trix is vulnerable to XSS through JSON deserialization bypass in drag-and-drop (Level0InputController)

LOW Published 2026-03-29 Modified 2026-08-12 Official page ↗
Aliases
CVE-2026-73427
Ecosystem
npm, RubyGems
Packages
trix, action_text-trix
Severity
Low
CVSS 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
Weaknesses
CWE-79
Reviewed
2026-03-29

Affected packages

• npm trix: < 2.1.18 → fixed in 2.1.18 • RubyGems action_text-trix: < 2.1.18 → fixed in 2.1.18

Description

Impact The Trix editor, in versions prior to 2.1.18, is vulnerable to XSS when a crafted `application/x-trix-document` JSON payload is dropped into the editor in environments using the fallback Level0InputController (e.g., embedded WebViews lacking Input Events Level 2 support). The `StringPiece.fromJSON` method trusted `href` attributes from the JSON payload without sanitization. An attacker could craft a draggable element containing a `javascript:` URI in the href attribute that, when dropped into a vulnerable editor, would bypass DOMPurify sanitization and inject executable JavaScript into the DOM. Exploitation requires a specific environment (Level0InputController fallback) and social engineering (victim must drag and drop attacker-controlled content into the editor). Applications using server-side HTML sanitization (such as Rails' built-in sanitizer) are additionally protected, as the payload is neutralized on save. Patches Update Recommendation: Users should upgrade to Trix editor version 2.1.18 or later. References The XSS vulnerability was responsibly reported by Hackerone researcher newbiefromcoma.

Related

Alias · CVE (1)

  • CVE-2026-73427 Trix is a what-you-see-is-what-you-get rich text editor for everyday writing. vulnerability

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References