CVE-2025-70831

9.8 CRITICAL

📋 TL;DR

An unauthenticated remote code execution vulnerability exists in Smanga 3.2.7 where the /php/path/rescan.php interface fails to sanitize the mediaId parameter before passing it to a system shell command. This allows attackers to execute arbitrary operating system commands on the server, potentially leading to complete system compromise. All systems running Smanga 3.2.7 with the vulnerable interface exposed are affected.

💻 Affected Systems

Products:
  • Smanga
Versions: 3.2.7
Operating Systems: Linux, Windows, Any OS running Smanga
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability is in the default installation of Smanga 3.2.7. Any system with the /php/path/rescan.php endpoint accessible is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server takeover with attacker gaining root/system-level access, data exfiltration, ransomware deployment, and persistent backdoor installation.

🟠

Likely Case

Server compromise leading to data theft, cryptocurrency mining, or use as a botnet node, given the unauthenticated nature and command injection vector.

🟢

If Mitigated

Limited impact if proper network segmentation, web application firewalls, and input validation are in place, though exploitation attempts may still occur.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

The vulnerability requires no authentication and involves simple command injection, making exploitation trivial for attackers with basic skills.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Unknown

Restart Required: No

Instructions:

No official patch is available. Monitor the Smanga project for updates and apply any security patches immediately when released.

🔧 Temporary Workarounds

Block Vulnerable Endpoint

all

Restrict access to the /php/path/rescan.php endpoint using web server configuration or firewall rules.

# Apache: Add to .htaccess or virtual host config
<Location "/php/path/rescan.php">
    Deny from all
</Location>
# Nginx: Add to server block
location /php/path/rescan.php {
    deny all;
}

Input Validation Patch

linux

Manually patch the vulnerable file to sanitize the mediaId parameter before use in shell commands.

# Backup original file
cp /path/to/smanga/php/path/rescan.php /path/to/smanga/php/path/rescan.php.backup
# Edit file to add input validation (example using escapeshellarg)
# Replace the vulnerable line with: $mediaId = escapeshellarg($_POST['mediaId']);

🧯 If You Can't Patch

  • Immediately restrict network access to the Smanga instance using firewall rules to allow only trusted IPs.
  • Deploy a web application firewall (WAF) with command injection rules to block exploitation attempts.

🔍 How to Verify

Check if Vulnerable:

Check if the /php/path/rescan.php endpoint is accessible and accepts POST requests with a mediaId parameter. Test with a harmless command injection payload like '; whoami;' to see if it executes.

Check Version:

Check the Smanga version in the application interface or configuration files. For Linux, try: grep -r "version" /path/to/smanga/ | grep -i smanga

Verify Fix Applied:

After applying workarounds, attempt to access the /php/path/rescan.php endpoint and test command injection; it should be blocked or sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /php/path/rescan.php with shell metacharacters (;, |, &, $, etc.) in parameters
  • Unexpected system commands in web server logs (e.g., whoami, id, wget, curl)

Network Indicators:

  • Spikes in traffic to the vulnerable endpoint from untrusted sources
  • Outbound connections from the server to unknown IPs post-exploitation

SIEM Query:

source="web_server_logs" AND uri="/php/path/rescan.php" AND (param="mediaId" AND value="*;*" OR value="*|*" OR value="*&*" OR value="*`*" OR value="*$(*")

🔗 References

📤 Share & Export