Sceawere
Vulnerability Detail
CVE-2026-73428UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
Trix Stored Cross-Site Scripting Vulnerability
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 4.6
- Creation Date
- 3h ago
- Vendor
- basecamp
- Product
- trix
- Attack Type
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N
- Attack Complexity
- LOW
Narrative and Response
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 stored cross-site scripting when crafted HTML is pasted into the editor. HTMLParser processes a mock attachment in a `<span>` with an empty `data-trix-attachment="{}"` value, causing data-trix-attributes to be applied to a plain string piece. StringPiece.fromJSON accepts an unvalidated href, allowing a javascript: URI to enter the document model and serialized HTML and execute when another user renders and clicks the content. Applications that apply server-side HTML sanitization can neutralize the payload on save. This issue is fixed in version 2.1.18.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "4.6",
"pubDate": "2026-08-13T22:17:26.587Z",
"pubdate": "2026-08-13T22:17:26.587Z",
"executiveSummary": "A stored cross-site scripting (XSS) vulnerability exists in the Trix rich text editor prior to version 2.1.18. The flaw allows malicious actors to inject crafted HTML containing JavaScript URI schemes into the document model via the editor interface. When another user renders and interacts with the stored content, the malicious script executes within the context of their session.\nThe vulnerability impacts applications utilizing Trix versions prior to 2.1.18 that do not implement robust server-side HTML sanitization before persisting user-generated rich text input. Successful exploitation requires an attacker to successfully inject the malicious payload into the editor and have a victim view and click the rendered content. The primary risk involves arbitrary script execution within the victim's browser, potentially leading to session hijacking, data theft, or unauthorized actions performed on behalf of the user.\nApplications that rely solely on client-side rendering without proper server-side validation or sanitization are exposed to persistent threat vectors until the core library is updated or protective measures are deployed.",
"technicalDetails": "The vulnerability stems from improper input handling and lack of strict URI scheme validation within the HTMLParser and StringPiece components of the Trix editor. Specifically, when crafted HTML is pasted into the editor, the HTMLParser processes a mock attachment located within a <span> element containing an empty data-trix-attachment=\"{}\" attribute value. This anomalous parsing condition causes subsequent data-trix-attributes to be improperly applied to a plain string piece.\nDuring the parsing and deserialization phases, the StringPiece.fromJSON function accepts an unvalidated href value without restricting permitted URI schemes. This architectural oversight allows a javascript: URI to successfully enter the internal document model and subsequently persist into the serialized HTML output generated by the editor.\nThe attack flow proceeds as follows: First, an attacker crafts a malicious payload encapsulated in specifically formatted HTML designed to exploit the mock attachment parsing behavior. Second, the attacker pastes this crafted HTML into the Trix editor instance, where HTMLParser processes the empty attachment structure and StringPiece.fromJSON instantiates the unvalidated javascript: URI. Third, the resulting malicious document model is serialized and saved to the backend storage without interception by server-side sanitization. Finally, when a victim user retrieves, renders, and clicks the affected content within the application interface, the embedded JavaScript executes in the victim's browser context.\nThe vulnerable components include the HTMLParser and the StringPiece.fromJSON function. Affected versions comprise all Trix releases prior to version 2.1.18. The vulnerability manifests via user interaction with stored content and does not mandate specific authentication or privilege requirements beyond the ability to input rich text into the application, depending on the specific threat model of the host application."
}