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.
Published: 2026-08-12
Score: 2.1 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A JSON payload dropped into a Trix editor injects a script tag via a javascript: URI that bypasses DOMPurify. The flaw lies in the StringPiece.fromJSON method, which trusts href attributes from the JSON payload without sanitization. The result is a classic cross‑site scripting vulnerability where an attacker can execute arbitrary JavaScript in the victim's browser. This can compromise user sessions, steal credentials, or manipulate the page permanently.

Affected Systems

The vulnerability impacts installations of Basecamp Trix version 2.1.17 and earlier that use the Level0InputController fallback. Any environment that supports drag‑and‑drop into the editor—such as custom web pages or embedded WebViews lacking Input Events Level 2 support—can be affected. The defect has been remediated in Trix 2.1.18.

Risk and Exploitability

The CVSS score of 2.1 classifies the flaw as low severity, and the EPSS score is not available, suggesting no known large‑scale exploitation. The issue is not listed in the CISA KEV catalogue. Exploitation requires a user to manually drag and drop attacker‑controlled content into the editor, which is a low‑probability attack vector. Nonetheless, any web application that incorporates Trix and allows drag‑and‑drop could be compromised if this flaw is present.

Generated by OpenCVE AI on August 13, 2026 at 02:18 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Trix v2.1.18 or later, which removes the unsafe FromJSON logic.
  • Disable the Level0InputController by ensuring Input Events Level 2 support or by blocking drag‑and‑drop operations in the editor.
  • Validate and sanitize any dropped content on the client side, rejecting javascript: URLs before rendering.

Generated by OpenCVE AI on August 13, 2026 at 02:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-53p3-c7vp-4mcc Trix is vulnerable to XSS through JSON deserialization bypass in drag-and-drop (Level0InputController)
History

Thu, 13 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 12 Aug 2026 23:45:00 +0000

Type Values Removed Values Added
First Time appeared Basecamp
Basecamp trix
Vendors & Products Basecamp
Basecamp trix

Wed, 12 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
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.
Title Trix: XSS via JSON deserialization bypass in drag-and-drop (Level0InputController)
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 2.1, '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-13T13:51:28.767Z

Reserved: 2026-08-12T14:32:11.796Z

Link: CVE-2026-73427

cve-icon Vulnrichment

Updated: 2026-08-13T13:51:23.635Z

cve-icon NVD

Status : Received

Published: 2026-08-12T21:17:41.613

Modified: 2026-08-13T15:20:14.620

Link: CVE-2026-73427

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T02:30:12Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')