CVE-2025-7149

6.3 MEDIUM

📋 TL;DR

This critical SQL injection vulnerability in Campcodes Advanced Online Voting System 1.0 allows remote attackers to execute arbitrary SQL commands via the ID parameter in /admin/candidates_delete.php. This affects all organizations using this specific voting system version, potentially compromising the entire database and voting integrity.

💻 Affected Systems

Products:
  • Campcodes Advanced Online Voting System
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default installation; requires the admin interface to be accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, manipulation of voting results, privilege escalation, and potential system takeover.

🟠

Likely Case

Unauthorized data access, manipulation of candidate/voter records, and potential authentication bypass to gain admin privileges.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, potentially only error messages or partial data exposure.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploit requires admin access to reach /admin/candidates_delete.php; SQL injection is straightforward once authenticated.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

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

Restart Required: No

Instructions:

No official patch available. Consider implementing input validation and parameterized queries manually.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

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

Modify /admin/candidates_delete.php to validate $_GET['ID'] with is_numeric() or similar

Web Application Firewall (WAF)

all

Deploy WAF rules to block SQL injection patterns targeting the ID parameter

Add WAF rule: Block requests to /admin/candidates_delete.php with non-numeric ID parameters

🧯 If You Can't Patch

  • Restrict access to /admin/ directory to trusted IP addresses only
  • Disable or remove the vulnerable candidates_delete.php file if functionality is not required

🔍 How to Verify

Check if Vulnerable:

Test by accessing /admin/candidates_delete.php?ID=1' OR '1'='1 and checking for SQL errors or unexpected behavior

Check Version:

Check system documentation or configuration files for version information

Verify Fix Applied:

Verify that malformed ID parameters (containing quotes, SQL keywords) are rejected or sanitized

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed SQL queries in application logs
  • Unusual database access patterns from admin interface
  • Requests to candidates_delete.php with suspicious ID parameters

Network Indicators:

  • HTTP requests containing SQL keywords (UNION, SELECT, etc.) in ID parameter
  • Unusual traffic to admin interface from unexpected sources

SIEM Query:

source="web_logs" AND uri="/admin/candidates_delete.php" AND (query_string="*UNION*" OR query_string="*SELECT*" OR query_string="*' OR '*"*)

🔗 References

📤 Share & Export