CVE-2025-63645

5.4 MEDIUM

📋 TL;DR

A stored cross-site scripting (XSS) vulnerability in pH7Software pH7-Social-Dating-CMS allows attackers to inject malicious scripts into message content. When another user views the malicious message in their Inbox, the script executes in their browser context. This affects all users of the vulnerable CMS version who use the messaging system.

💻 Affected Systems

Products:
  • pH7Software pH7-Social-Dating-CMS
Versions: 17.9.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default message system functionality and requires no special configuration to be exploitable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, perform account takeover, redirect users to malicious sites, or deploy malware through the victim's browser.

🟠

Likely Case

Attackers will typically steal session cookies to hijack user accounts, potentially accessing private messages, personal data, or performing actions as the victim.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts would be rendered harmless as text rather than executable code.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires an attacker to have a user account to send messages, but the technical complexity of crafting XSS payloads is low.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Unknown

Restart Required: No

Instructions:

1. Monitor pH7Software for security updates. 2. Apply any available patch for version 17.9.1 or upgrade to a fixed version when released. 3. Test the fix in a non-production environment first.

🔧 Temporary Workarounds

Implement Content Security Policy (CSP)

all

Add a Content Security Policy header to restrict script execution sources

Add to web server config: Content-Security-Policy: default-src 'self'; script-src 'self'

Input Validation Filter

all

Add server-side filtering to sanitize message content before storage

Implement HTML entity encoding for user input: htmlspecialchars($message, ENT_QUOTES, 'UTF-8')

🧯 If You Can't Patch

  • Disable the messaging system feature entirely if not critical
  • Implement web application firewall (WAF) rules to block XSS payload patterns

🔍 How to Verify

Check if Vulnerable:

Send a test message containing <script>alert('XSS')</script> and check if it executes when viewed in another user's inbox

Check Version:

Check CMS version in admin panel or via /_protected/app/configs/config.ini version setting

Verify Fix Applied:

After applying fixes, test that the same payload appears as plain text rather than executing

📡 Detection & Monitoring

Log Indicators:

  • Unusually long message content
  • Messages containing script tags or JavaScript patterns
  • Multiple failed login attempts following message views

Network Indicators:

  • Outbound connections to unknown domains after viewing messages
  • Unusual cookie/session activity

SIEM Query:

source="web_logs" AND (message_content="*<script>*" OR message_content="*javascript:*")

🔗 References

📤 Share & Export