CVE-2026-3752

4.7 MEDIUM

📋 TL;DR

This vulnerability allows remote attackers to execute SQL injection attacks via the Date parameter in the /daily-task-report.php file of SourceCodester Employee Task Management System. It affects all users running versions up to 1.0, potentially leading to unauthorized database access or manipulation. The exploit is publicly available, increasing the risk of widespread attacks.

💻 Affected Systems

Products:
  • SourceCodester Employee Task Management System
Versions: Up to and including version 1.0
Operating Systems: Any OS running the web application (e.g., Linux, Windows)
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability is present in the default installation; no special configuration is required to be exploitable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could gain full control of the database, leading to data theft, deletion, or system compromise, including potential remote code execution if database privileges allow.

🟠

Likely Case

Unauthorized access to sensitive employee task data, such as personal information or task details, with possible data exfiltration or tampering.

🟢

If Mitigated

If proper input validation and SQL parameterization are in place, the impact is minimized to failed attack attempts with no data compromise.

🌐 Internet-Facing: HIGH, as the vulnerability is remotely exploitable and a public proof-of-concept exists, making attacks easy to launch from anywhere.
🏢 Internal Only: MEDIUM, as internal attackers could exploit it to escalate privileges or access sensitive data, but requires network access to the system.

🎯 Exploit Status

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

The exploit is simple to execute using publicly available scripts, requiring minimal technical skill.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://www.sourcecodester.com/

Restart Required: No

Instructions:

No official patch is available. Monitor the vendor's website for updates and apply any future patches immediately. In the meantime, implement workarounds such as input validation or WAF rules.

🔧 Temporary Workarounds

Implement Input Validation and Sanitization

all

Add server-side validation to sanitize the Date parameter, rejecting malicious SQL characters.

Modify /daily-task-report.php to use prepared statements, e.g., in PHP: $stmt = $conn->prepare('SELECT * FROM tasks WHERE date = ?'); $stmt->bind_param('s', $date);

Deploy Web Application Firewall (WAF)

linux

Configure WAF rules to block SQL injection attempts targeting the /daily-task-report.php endpoint.

Add custom rule to block requests with SQL keywords in the Date parameter, e.g., using ModSecurity: SecRule ARGS:Date "(?i:(union|select|insert|delete|update|drop|--|#|\/\*|\*\/|xp_))" "deny,status:403,id:1001"

🧯 If You Can't Patch

  • Restrict network access to the application by placing it behind a firewall or VPN, limiting exposure to trusted users only.
  • Monitor and audit database logs for unusual SQL queries or access patterns, and implement intrusion detection systems to alert on exploitation attempts.

🔍 How to Verify

Check if Vulnerable:

Test by sending a crafted request to /daily-task-report.php with a malicious Date parameter (e.g., Date=1' OR '1'='1) and check for SQL errors or unexpected responses in the application output.

Check Version:

Check the application's version in its admin panel or configuration files; for SourceCodester systems, look in files like version.txt or database settings.

Verify Fix Applied:

After applying workarounds, retest with the same malicious input; the application should reject the request or return an error without executing SQL, and logs should show blocked attempts.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs, such as UNION SELECT statements; HTTP logs showing requests to /daily-task-report.php with suspicious Date parameters containing SQL keywords.

Network Indicators:

  • Incoming traffic to the web server on port 80/443 with payloads like ' OR '1'='1 in the URL parameters; spikes in error responses from the application.

SIEM Query:

source="web_logs" AND url="/daily-task-report.php" AND (param="Date" AND value MATCHES "(?i:union|select|insert|delete|update|drop|--|#|\/\*|\*\/)")

🔗 References

📤 Share & Export