CVE-2025-2984

6.3 MEDIUM

📋 TL;DR

This critical SQL injection vulnerability in Payroll Management System 1.0 allows attackers to manipulate database queries through the emp_id parameter in /delete.php. Remote attackers can potentially read, modify, or delete sensitive payroll data. All users of this specific software version are affected.

💻 Affected Systems

Products:
  • code-projects Payroll Management System
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects installations with /delete.php accessible and emp_id parameter exposed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including theft of sensitive employee data (SSNs, salaries, personal information), unauthorized payroll modifications, and potential system takeover.

🟠

Likely Case

Data exfiltration of employee records and payroll information, potentially leading to identity theft or financial fraud.

🟢

If Mitigated

Limited information disclosure if database permissions are properly restricted and input validation is implemented elsewhere.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit details are publicly available on GitHub, making this easily weaponizable by attackers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: https://code-projects.org/

Restart Required: No

Instructions:

No official patch available. Consider migrating to alternative payroll software or implementing custom fixes with parameterized queries.

🔧 Temporary Workarounds

Web Application Firewall (WAF)

all

Deploy WAF rules to block SQL injection patterns targeting /delete.php

Access Restriction

linux

Block external access to /delete.php via firewall or web server configuration

# Apache: RewriteRule ^delete\.php$ - [F]
# Nginx: location ~ /delete\.php$ { deny all; }

🧯 If You Can't Patch

  • Implement network segmentation to isolate the payroll system from internet access
  • Deploy database monitoring to detect unusual SQL queries and access patterns

🔍 How to Verify

Check if Vulnerable:

Test /delete.php endpoint with SQL injection payloads in emp_id parameter (e.g., emp_id=1' OR '1'='1)

Check Version:

Check software documentation or configuration files for version information

Verify Fix Applied:

Verify that SQL injection attempts no longer succeed and return appropriate error messages

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL error messages in web logs
  • Multiple failed delete.php requests with SQL syntax
  • Unexpected database queries from web application

Network Indicators:

  • HTTP requests to /delete.php with SQL keywords in parameters
  • Unusual database traffic patterns from web server

SIEM Query:

source="web_logs" AND uri="/delete.php" AND (param="emp_id" AND value MATCHES "(?i)(union|select|insert|delete|update|drop|--|'|;)")

🔗 References

📤 Share & Export