
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-73426 is a stored Cross-Site Scripting (XSS) vulnerability in the Trix WYSIWYG rich text editor, affecting all versions prior to 2.1.17. The flaw allows an attacker to craft HTML containing a data-trix-serialized-attributes attribute that bypasses the DOMPurify sanitizer, enabling arbitrary JavaScript execution in a victim's browser session. It affects both the npm package trix and the RubyGems package action_text-trix. The vulnerability was responsibly disclosed via HackerOne (report #3581911) and patched on March 11, 2026. It carries a CVSS v3.1 base score of 4.6 (Medium) (GitHub Advisory).
The root cause (CWE-79) lies in how Trix's DOMPurify integration handled the data-trix-* attribute namespace. The existing uponSanitizeAttribute hook used a broad forceKeepAttr = true rule to preserve all data-trix-* attributes, but failed to exclude data-trix-serialized-attributes — the only attribute in that namespace whose value is later expanded into arbitrary DOM attributes via el.setAttribute(name, value) in the serialization code. An attacker with low privileges can craft and submit HTML (e.g., via paste or stored content) containing a data-trix-serialized-attributes payload embedded within a data-trix-attachment JSON structure. When the content is rendered, the serializer reads the attribute value as trusted instructions and sets attacker-controlled attributes (such as onerror) on DOM elements, triggering JavaScript execution. The attack requires user interaction (a victim viewing the malicious content) (GitHub Advisory, Fix PR).
Successful exploitation allows an attacker to execute arbitrary JavaScript within the context of the victim user's browser session on the affected application. This can lead to unauthorized actions performed on behalf of the victim, session token theft, credential harvesting, or disclosure of sensitive information accessible to the user. The availability impact is none, but both confidentiality and integrity are partially compromised. Applications using Trix for user-generated content (e.g., Rails apps with ActionText) are at risk if they render untrusted content from other users (GitHub Advisory).
No public exploit code or in-the-wild exploitation has been reported as of the time of disclosure. The NVD SSVC assessment indicates exploitation is "none" and the attack is not automatable, as it requires user interaction (a victim must view the attacker-crafted content). The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The vulnerability was responsibly reported by a HackerOne researcher identified as "newbiefromcoma" (GitHub Advisory).
trix < 2.1.17 or RubyGems action_text-trix < 2.1.17) that renders user-supplied rich text content to other users.data-trix-attachment attribute whose JSON value includes a nested data-trix-serialized-attributes attribute with a malicious payload, for example embedding an onerror event handler on an <img> element.data-trix-serialized-attributes attribute was not stripped by DOMPurify in vulnerable versions, it is stored as-is.data-trix-serialized-attributes as trusted instructions and calls el.setAttribute() with attacker-controlled attribute names and values (e.g., onerror="alert(document.cookie)"), executing arbitrary JavaScript in the victim's session (Fix PR, GitHub Advisory).data-trix-serialized-attributes in the request body, particularly with encoded event handler strings (e.g., onerror, onload).data-trix-serialized-attributes with embedded JavaScript event handlers or encoded script payloads.Upgrade the Trix editor to version 2.1.17 or later for both the npm package (trix) and the RubyGems package (action_text-trix). The fix adds an explicit check in the DOMPurify uponSanitizeAttribute hook to strip data-trix-serialized-attributes before the broad data-trix-* force-keep logic runs, preventing the attribute from reaching the serialization sink. No configuration-based workaround is available for unpatched versions; upgrading is the only remediation. Applications using Rails ActionText should update the action_text-trix gem accordingly (GitHub Release, Fix Commit).
The vulnerability was responsibly disclosed through HackerOne and patched promptly by the Trix maintainer (flavorjones) on March 11, 2026. The fix underwent an AI-assisted code review (Claude and Codex) as part of the pull request process, which confirmed no bypass potential and low regression risk. The release was noted in downstream dependency update PRs (e.g., in the DFE-Digital project). No significant broader media coverage or notable researcher commentary beyond the GitHub advisory and PR discussion has been identified (GitHub Advisory, Fix PR).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."