CVE-2024-40073

9.8 CRITICAL

📋 TL;DR

This SQL injection vulnerability in Sourcecodester Online ID Generator System 1.0 allows attackers to execute arbitrary SQL commands via the template parameter in the admin interface. This can lead to unauthorized data access, modification, or deletion. All installations of version 1.0 are affected.

💻 Affected Systems

Products:
  • Sourcecodester Online ID Generator System
Versions: 1.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Requires admin access to reach the vulnerable endpoint at /id_generator/admin/?page=generate

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including data theft, data destruction, and potential remote code execution via database functions.

🟠

Likely Case

Unauthorized access to sensitive data, privilege escalation, and potential administrative account takeover.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, potentially only read access to non-sensitive data.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is accessible via the admin interface which may be exposed to the internet.
🏢 Internal Only: MEDIUM - Even internal-only deployments are vulnerable to insider threats or compromised internal systems.

🎯 Exploit Status

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

Exploitation requires admin authentication but SQL injection is straightforward once authenticated. Public proof-of-concept exists in GitHub repository.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Unknown

Restart Required: No

Instructions:

No official patch available. Implement parameterized queries or input validation in the template parameter handling code.

🔧 Temporary Workarounds

Input Validation Filter

all

Add server-side validation to ensure template parameter contains only numeric values

Modify PHP code to validate: if(!is_numeric($_GET['template'])) { die('Invalid input'); }

WAF Rule

all

Implement web application firewall rules to block SQL injection patterns in template parameter

Add WAF rule: Detect SQLi patterns in GET parameters

🧯 If You Can't Patch

  • Restrict admin interface access to trusted IP addresses only
  • Implement database user with minimal required permissions (read-only if possible)

🔍 How to Verify

Check if Vulnerable:

Test the endpoint with SQL injection payloads like: /id_generator/admin/?page=generate&template=4' OR '1'='1

Check Version:

Check version in application files or documentation, typically in readme.txt or config files

Verify Fix Applied:

Test with same payloads and verify they are rejected or properly escaped

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple failed login attempts followed by admin access
  • Requests with SQL keywords in template parameter

Network Indicators:

  • HTTP requests containing SQL injection patterns in GET parameters
  • Unusual database query patterns from web server

SIEM Query:

source="web_logs" AND (uri="*template=*" AND (uri="*OR*" OR uri="*UNION*" OR uri="*SELECT*" OR uri="*'*"))

🔗 References

📤 Share & Export