CVE-2025-27109

7.3 HIGH

📋 TL;DR

This vulnerability in solid-js allows user input to be rendered as HTML when placed directly inside JSX fragments, enabling cross-site scripting (XSS) attacks. All applications using affected versions of solid-js are vulnerable if they handle untrusted user input in JSX fragments. The vulnerability affects both server-side and client-side rendering scenarios.

💻 Affected Systems

Products:
  • solid-js
Versions: Versions before 1.9.4
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects applications that use JSX fragments with user-controlled input. Both Node.js and browser environments are affected.

⚠️ 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 users' browsers, potentially stealing session cookies, performing actions as the user, or redirecting to malicious sites.

🟠

Likely Case

XSS attacks leading to session hijacking, credential theft, or defacement of web applications.

🟢

If Mitigated

If input validation and output encoding are properly implemented elsewhere, impact is limited to specific JSX fragment usage patterns.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires user input to be placed directly inside JSX fragments without proper sanitization.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.9.4

Vendor Advisory: https://github.com/solidjs/solid/security/advisories/GHSA-3qxh-p7jc-5xh6

Restart Required: No

Instructions:

1. Update solid-js dependency to version 1.9.4 or later. 2. Run npm update solid-js or yarn upgrade solid-js. 3. Rebuild and redeploy your application.

🔧 Temporary Workarounds

Input Sanitization

all

Manually sanitize all user input before using it in JSX fragments

🧯 If You Can't Patch

  • Implement strict Content Security Policy (CSP) headers to limit script execution
  • Review all JSX fragment usage and ensure user input is properly escaped or sanitized

🔍 How to Verify

Check if Vulnerable:

Check package.json or package-lock.json for solid-js version. If version is below 1.9.4, you are vulnerable.

Check Version:

npm list solid-js or yarn list solid-js

Verify Fix Applied:

Verify solid-js version is 1.9.4 or higher after update. Test JSX fragments with test payloads to ensure proper escaping.

📡 Detection & Monitoring

Log Indicators:

  • Unusual JavaScript execution patterns
  • Suspicious user input containing script tags

Network Indicators:

  • Unexpected script loads from user-controlled sources

SIEM Query:

Search for patterns like <script> or javascript: in user input fields that feed into JSX rendering

🔗 References

📤 Share & Export