Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
📦 npm💎 RubyGems
Not in CISA KEV

GHSA-53p3-c7vp-4mcc — trix

Fix: basecamp/trix@9c0a993

GHSA-53p3-c7vp-4mcc is a Cross-site Scripting (XSS) vulnerability in trix. A fix is available for trix — see the affected versions and patch details below.

Trix is vulnerable to XSS through JSON deserialization bypass in drag-and-drop (Level0InputController)

Also known asCVE-2026-73427
Published
Mar 29, 2026
Updated
Sep 10, 2026
Affected
2 pkgs
Patched
2 / 2
Exploits
None indexed
Exploitation data as of Sep 27, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for GHSA-53p3-c7vp-4mcc.

EPSS Exploitation Probability

via FIRST.org ↗
0.6%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs45th percentile — riskier than 45% of all scored CVEsHighest risk

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

Real-World Exposure

2 pkgs affected

How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.

66other npm packages depend on this — each one inherits the vulnerability until it's patched upstream
trixnpm
586Kdownloads / week

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.

Affected Packages

2 total 2 fixed
EcosystemPackageVulnerable rangeFix
📦npmtrixall versions2.1.18npm install trix@2.1.18
💎RubyGemsaction_text-trixall versions2.1.18bundle update action_text-trix --conservative

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for trix, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update trix to 2.1.18 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-53p3-c7vp-4mcc is resolved across your whole dependency graph.

  3. Workarounds

    Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatModerate

The version of action_text-trix shipped in Red Hat products is not affected by this vulnerability as it already includes the fix.

Workaround published by Red Hat
Upgrading to Trix 2.1.18+ resolves this issue. Applications using server-side HTML sanitization (such as Rails' built-in sanitizer) provide additional protection.
Source: Red Hat security advisory for GHSA-53p3-c7vp-4mcc (CC BY 4.0)

Frequently Asked Questions

### 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
O3 Security · Impact-Aware SCA

Is GHSA-53p3-c7vp-4mcc in your dependencies?

Find it across npm, RubyGems, including transitive dependencies.

GHSA-53p3-c7vp-4mcc: trix XSS | O3 Security