CVE-2025-65442

6.1 MEDIUM

📋 TL;DR

This DOM-based XSS vulnerability in novel V3.5.0 allows attackers to execute arbitrary JavaScript in users' browsers by injecting malicious code through URL parameters or localStorage. Attackers can steal session cookies, redirect users, or perform actions on their behalf. All users of the vulnerable novel software are affected.

💻 Affected Systems

Products:
  • novel
Versions: V3.5.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default configuration through the book comment module.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover via session cookie theft, data exfiltration, or malware distribution to all users of the vulnerable application.

🟠

Likely Case

Session hijacking leading to unauthorized access to user accounts and potential data theft.

🟢

If Mitigated

Limited impact with proper Content Security Policy and input validation, though some risk remains.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Public proof-of-concept available on GitHub. Exploitation requires user interaction (visiting malicious link).

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: None available

Restart Required: No

Instructions:

No official patch available. Consider implementing workarounds or migrating to a different platform.

🔧 Temporary Workarounds

Input Sanitization Implementation

all

Implement proper input validation and output encoding in the book comment module

Modify backend API to sanitize commentContent field before storage
Replace v-html directive with safe alternatives in Vue components

Content Security Policy

all

Implement strict CSP headers to prevent script execution from untrusted sources

Add Content-Security-Policy header: script-src 'self'

🧯 If You Can't Patch

  • Disable the book comment module entirely if not essential
  • Implement WAF rules to block requests containing suspicious XSS patterns in wvstest parameter

🔍 How to Verify

Check if Vulnerable:

Test by injecting <script>alert('XSS')</script> into comment field or wvstest URL parameter and checking if script executes

Check Version:

Check package.json or application configuration for version information

Verify Fix Applied:

Verify that script tags and JavaScript payloads are properly sanitized and do not execute when injected

📡 Detection & Monitoring

Log Indicators:

  • Unusual comment submissions with script tags
  • Requests with wvstest parameter containing JavaScript code
  • Multiple failed comment submissions with XSS patterns

Network Indicators:

  • HTTP requests with suspicious parameters containing script tags or JavaScript functions
  • Unusual outbound connections following comment submissions

SIEM Query:

source="web_logs" AND (uri="*wvstest=*script*" OR comment="*<script>*")

🔗 References

📤 Share & Export