CVE-2025-13560

7.3 HIGH

📋 TL;DR

This SQL injection vulnerability in SourceCodester Company Website CMS 1.0 allows attackers to manipulate database queries through the email parameter in the admin password reset function. Attackers can potentially extract, modify, or delete database contents. All installations of this specific CMS version are affected.

💻 Affected Systems

Products:
  • SourceCodester Company Website CMS
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default installation. No special configuration is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including admin credential theft, data exfiltration, and potential remote code execution via database functions.

🟠

Likely Case

Extraction of sensitive user data, admin credential harvesting, and potential website defacement or data manipulation.

🟢

If Mitigated

Limited impact if database permissions are restricted and web application firewall blocks SQL injection patterns.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is accessible remotely without authentication, making it easily exploitable from the internet.
🏢 Internal Only: MEDIUM - While still vulnerable, internal-only deployments have reduced attack surface from external threats.

🎯 Exploit Status

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

The exploit is publicly available and requires no authentication. Basic SQL injection techniques can be used.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

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

Restart Required: No

Instructions:

No official patch available. Consider upgrading to a newer version if available or implementing workarounds.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Add proper input validation and parameterized queries to the /admin/reset-password.php file

Edit /admin/reset-password.php to implement prepared statements with parameterized queries

Web Application Firewall Rules

all

Implement WAF rules to block SQL injection patterns targeting the reset-password endpoint

Add WAF rule: Block requests to /admin/reset-password.php containing SQL keywords in email parameter

🧯 If You Can't Patch

  • Restrict access to /admin/reset-password.php using IP whitelisting or authentication requirements
  • Implement database-level protections: restrict application database user permissions to minimum required

🔍 How to Verify

Check if Vulnerable:

Test the /admin/reset-password.php endpoint with SQL injection payloads in the email parameter (e.g., email=test' OR '1'='1)

Check Version:

Check CMS version in admin panel or readme files; look for 'Company Website CMS 1.0'

Verify Fix Applied:

Test with SQL injection payloads after implementing fixes; successful fixes should return error messages or no database manipulation

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in web server logs
  • Multiple failed password reset attempts with SQL-like patterns in email parameter
  • Requests to /admin/reset-password.php with special characters in email

Network Indicators:

  • HTTP POST requests to /admin/reset-password.php containing SQL keywords (UNION, SELECT, INSERT, etc.)
  • Unusual database query patterns from web server IP

SIEM Query:

source="web_logs" AND uri_path="/admin/reset-password.php" AND (email="*'*" OR email="*--*" OR email="*UNION*" OR email="*SELECT*")

🔗 References

📤 Share & Export