---
id: CVE-2026-73427
title: Trix is a what-you-see-is-what-you-get rich text editor for everyday writing
summary: >-
  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
  fallbac…
severity: none
cwe:
  - CWE-79
published: '2026-08-12'
updated: '2026-09-09'
sourceUpdated: '2026-09-09T21:02:22.660'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-73427'
references:
  - url: >-
      https://github.com/basecamp/trix/commit/9c0a993d9fc2ffe9d56b013b030bc238f9c0557c
    label: security-advisories@github.com
  - url: 'https://github.com/basecamp/trix/pull/1293'
    label: security-advisories@github.com
  - url: 'https://github.com/basecamp/trix/releases/tag/v2.1.18'
    label: security-advisories@github.com
  - url: 'https://github.com/basecamp/trix/security/advisories/GHSA-53p3-c7vp-4mcc'
    label: security-advisories@github.com
tags:
  - nvd
epss: 0.00575
epssPercentile: 0.451
ingestedAt: '2026-09-09T21:22:45.532Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
