CVE-2025-71165

5.4 MEDIUM

📋 TL;DR

This reflected XSS vulnerability in Typesetter CMS allows authenticated attackers to inject malicious scripts into the administrative interface's Tools Status page. When an authenticated administrator views the crafted URL, arbitrary JavaScript executes in their browser session. Only Typesetter CMS installations with administrative users are affected.

💻 Affected Systems

Products:
  • Typesetter CMS
Versions: Versions up to and including 5.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated access to the administrative interface.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An authenticated attacker could steal administrator session cookies, perform actions as the administrator (like adding backdoors or modifying content), or redirect to phishing sites.

🟠

Likely Case

Session hijacking leading to unauthorized administrative actions, data theft, or website defacement.

🟢

If Mitigated

Limited impact if administrators use separate browser profiles for admin tasks and have strong session management.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access; proof-of-concept is publicly available in GitHub issue #709.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 5.2 or later

Vendor Advisory: https://github.com/Typesetter/Typesetter/issues/709

Restart Required: No

Instructions:

1. Backup your Typesetter CMS installation. 2. Download the latest version from the official GitHub repository. 3. Replace the affected file include/admin/Tools/Status.php with the patched version. 4. Verify the fix by checking that the path parameter is now properly encoded.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to sanitize the path parameter before processing.

Edit include/admin/Tools/Status.php and add htmlspecialchars() or similar encoding around the path parameter output.

🧯 If You Can't Patch

  • Restrict administrative access to trusted IP addresses only.
  • Implement a Web Application Firewall (WAF) with XSS protection rules.

🔍 How to Verify

Check if Vulnerable:

Access the administrative interface, navigate to Tools > Status, and check if the URL contains a path parameter that reflects unsanitized input in the HTML response.

Check Version:

Check the version in the admin panel or review the CHANGELOG.md file in the installation directory.

Verify Fix Applied:

After patching, test by injecting a simple XSS payload (e.g., <script>alert('test')</script>) into the path parameter and verify it is encoded in the output.

📡 Detection & Monitoring

Log Indicators:

  • Unusual requests to include/admin/Tools/Status.php with suspicious parameters containing script tags or JavaScript code.

Network Indicators:

  • HTTP requests with encoded script tags in query parameters targeting the admin interface.

SIEM Query:

source="web_server_logs" AND uri="/include/admin/Tools/Status.php" AND (param="path" AND value CONTAINS "<script>" OR "javascript:")

🔗 References

📤 Share & Export