Loading...
Skip to main content

CVE-2025-64501 — Vulnerability in prosemirror_to_html — CVE Details

HIGH

Cross-Site Scripting (XSS) vulnerability through unescaped HTML attribute values

Published November 6, 2025Updated February 3, 2026Source: osv

Summary

### Impact The prosemirror_to_html gem is vulnerable to Cross-Site Scripting (XSS) attacks through malicious HTML attribute values. While tag content is properly escaped, attribute values are not, allowing attackers to inject arbitrary JavaScript code. **Who is impacted:** - Any application using prosemirror_to_html to convert ProseMirror documents to HTML - Applications that process user-generated ProseMirror content are at highest risk - End users viewing the rendered HTML output could have malicious JavaScript executed in their browsers **Attack vectors include:** - `href` attributes with `javascript:` protocol: `<a href="javascript:alert(document.cookie)">` - Event handlers: `<div onclick="maliciousCode()">` - `onerror` attributes on images: `<img src=x onerror="alert('XSS')">` - Other HTML attributes that can execute JavaScript ### Patches A fix is currently in development. Users should upgrade to version **0.2.1** or later once released. The patch escapes all HTML attribute values using `CGI.escapeHTML` to prevent injection attacks. ### Workarounds Until a patched version is available, users can implement one or more of these mitigations: 1. **Sanitize output**: Pass the HTML output through a sanitization library like [Sanitize](https://github.com/rgrove/sanitize) or [Loofah](https://github.com/flavorjones/loofah): ```ruby html = ProsemirrorToHtml.render(document) safe_html = Sanitize.fragment(html, Sanitize::Config::RELAXED) ``` 2. **Implement Content Security Policy (CSP)**: Add strict CSP headers to prevent inline JavaScript execution: ``` Content-Security-Policy: default-src 'self'; script-src 'self' ``` 3. **Input validation**: If possible, validate and sanitize ProseMirror documents before conversion to prevent malicious content from entering the system. ### References - Vulnerable code: https://github.com/etaminstudio/prosemirror_to_html/blob/ea8beb32f6c37f29f042ba4155ccf18504da716e/lib/prosemirror_to_html.rb#L249 - [OWASP XSS Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) - [CWE-79: Improper Neutralization of Input During Web Page Generation](https://cwe.mitre.org/data/definitions/79.html)

Advisory Timeline

  • First published November 6, 2025 (340 days ago).
  • Last revised February 3, 2026 — 88 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Bundler
Update prosemirror_to_html to 0.2.1 or later
gem install prosemirror_to_html -v 0.2.1

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
prosemirror_to_html
rubygems
0.1.0, 0.2.00.2.1

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-79
    Cross-site Scripting (XSS)MITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 7.6 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
None

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N

Frequently Asked Questions

What is CVE-2025-64501?
Cross-Site Scripting (XSS) vulnerability through unescaped HTML attribute values This vulnerability has been assigned a severity rating of HIGH (CVSS score: 7.6/10).
How do I check if my project is affected by CVE-2025-64501?
CVE-2025-64501 affects prosemirror_to_html. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2025-64501 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
7.6

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-52c5-vh7f-26fx

Related CVEs

  • CVE-2026-94462
    HIGH

    Spree: Broken Access Control in `PATCH /api/v3/store/carts/:id/associate` (IDOR)

  • CVE-2026-77601
    HIGH

    OpenC3 COSMOS: Authenticated OS command injection via the `pypi_url` setting

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies