CVE-2025-64501

7.6 HIGH

📋 TL;DR

The prosemirror_to_html gem versions 0.2.0 and below are 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. Applications using this gem to convert ProseMirror documents to HTML, especially those processing user-generated content, are at risk.

💻 Affected Systems

Products:
  • prosemirror_to_html Ruby gem
Versions: 0.2.0 and below
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects applications that use the gem to convert ProseMirror JSON to HTML, particularly with user-generated content.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers can execute arbitrary JavaScript in victims' browsers, potentially stealing session cookies, performing actions as the user, or redirecting to malicious sites.

🟠

Likely Case

Attackers inject malicious scripts through user-generated content that gets rendered to other users, leading to session hijacking or credential theft.

🟢

If Mitigated

With proper input validation and output encoding, the risk is reduced but not eliminated without patching.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

XSS vulnerabilities are commonly exploited; the advisory provides details but no public exploit code is known.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.2.1

Vendor Advisory: https://github.com/etaminstudio/prosemirror_to_html/security/advisories/GHSA-52c5-vh7f-26fx

Restart Required: No

Instructions:

1. Update Gemfile to specify 'gem "prosemirror_to_html", ">= 0.2.1"'. 2. Run 'bundle update prosemirror_to_html'. 3. Test the application to ensure functionality.

🔧 Temporary Workarounds

Input Sanitization

all

Implement strict input validation to reject or sanitize malicious HTML attribute values before processing with the gem.

Output Encoding

all

Apply additional HTML encoding to attribute values after conversion but before rendering to users.

🧯 If You Can't Patch

  • Disable user-generated content features that use prosemirror_to_html.
  • Implement a web application firewall (WAF) with XSS protection rules.

🔍 How to Verify

Check if Vulnerable:

Check Gemfile.lock or run 'bundle show prosemirror_to_html' to see if version is 0.2.0 or lower.

Check Version:

bundle show prosemirror_to_html

Verify Fix Applied:

After updating, verify the version is 0.2.1 or higher with 'bundle show prosemirror_to_html'.

📡 Detection & Monitoring

Log Indicators:

  • Unusual HTML attribute patterns in user input logs, such as JavaScript event handlers in attributes.

Network Indicators:

  • HTTP requests containing suspicious attribute values like 'onclick=' or 'onload='.

SIEM Query:

search for 'prosemirror_to_html' in application logs combined with patterns like '*onerror=*' or '*javascript:*' in attribute values.

🔗 References

📤 Share & Export