CVE-2024-8221

6.3 MEDIUM

📋 TL;DR

This critical SQL injection vulnerability in SourceCodester Music Gallery Site 1.0 allows attackers to execute arbitrary SQL commands via the 'id' parameter in /admin/categories/manage_category.php. Attackers can potentially read, modify, or delete database content, and the attack can be performed remotely without authentication. All users running the vulnerable version are affected.

💻 Affected Systems

Products:
  • SourceCodester Music Gallery Site
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation and requires no special configuration to be exploitable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data destruction, or remote code execution via database functions.

🟠

Likely Case

Unauthorized data access, privilege escalation, or database manipulation leading to site defacement or data exfiltration.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and database permission restrictions in place.

🌐 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 with basic SQL injection knowledge.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

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

Restart Required: No

Instructions:

No official patch available. Implement workarounds or migrate to alternative software.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add server-side validation to ensure the 'id' parameter contains only expected values (integers).

Modify /admin/categories/manage_category.php to validate and sanitize the id parameter before use in SQL queries.

Parameterized Queries Implementation

all

Replace direct SQL string concatenation with prepared statements using parameterized queries.

Rewrite SQL queries in manage_category.php to use PDO or mysqli prepared statements.

🧯 If You Can't Patch

  • Implement a Web Application Firewall (WAF) with SQL injection protection rules.
  • Restrict access to the /admin/ directory to trusted IP addresses only.

🔍 How to Verify

Check if Vulnerable:

Test the /admin/categories/manage_category.php endpoint with SQL injection payloads in the 'id' parameter.

Check Version:

Check the software version in the application's configuration or documentation.

Verify Fix Applied:

Verify that SQL injection attempts no longer succeed and that input validation is properly implemented.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL error messages in web server logs
  • Multiple requests to manage_category.php with suspicious id parameters

Network Indicators:

  • HTTP requests containing SQL keywords (SELECT, UNION, etc.) in URL parameters

SIEM Query:

source="web_server" AND (url="*manage_category.php*" AND (param="*id=*SELECT*" OR param="*id=*UNION*" OR param="*id=*OR*"))

🔗 References

📤 Share & Export