CVE-2025-7134

7.3 HIGH

📋 TL;DR

A critical SQL injection vulnerability in Campcodes Online Recruitment Management System 1.0 allows remote attackers to execute arbitrary SQL commands via the ID parameter in /admin/ajax.php?action=delete_application. This can lead to data theft, modification, or deletion. All deployments of version 1.0 are affected.

💻 Affected Systems

Products:
  • Campcodes Online Recruitment Management System
Versions: 1.0
Operating Systems: Any (web application)
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of version 1.0 are vulnerable. The /admin/ajax.php endpoint is typically accessible after authentication, but the vulnerability may allow bypass.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including sensitive applicant data, admin credential theft, and potential system takeover via subsequent attacks.

🟠

Likely Case

Data exfiltration of recruitment records, personal information, and potential privilege escalation to admin accounts.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, but still exposes sensitive data.

🌐 Internet-Facing: HIGH - Attack can be initiated remotely without authentication, making internet-facing instances extremely vulnerable.
🏢 Internal Only: MEDIUM - Internal attackers could exploit, but external threat actors cannot reach internal systems directly.

🎯 Exploit Status

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

Exploit details are publicly disclosed on GitHub. Attack requires access to admin interface but 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 migrating to alternative software or implementing workarounds.

🔧 Temporary Workarounds

Input Validation Filter

all

Add parameter validation to only accept numeric IDs in the delete_application function

Modify /admin/ajax.php to validate ID parameter: if(!is_numeric($_GET['ID'])) { die('Invalid input'); }

WAF Rule

all

Implement web application firewall rules to block SQL injection patterns

Add WAF rule: Detect and block requests containing SQL keywords like UNION, SELECT, INSERT with ID parameter

🧯 If You Can't Patch

  • Isolate the system behind a firewall with strict access controls
  • Implement database-level protections: use least privilege accounts, enable query logging

🔍 How to Verify

Check if Vulnerable:

Test the endpoint with SQL injection payloads: /admin/ajax.php?action=delete_application&ID=1' OR '1'='1

Check Version:

Check application version in admin panel or readme files

Verify Fix Applied:

Test with same payloads after implementing fixes - should return error or no database interaction

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple delete_application requests with malformed IDs
  • Database queries with unexpected UNION or SELECT statements

Network Indicators:

  • HTTP requests to /admin/ajax.php with SQL keywords in parameters
  • Unusual database connection patterns from web server

SIEM Query:

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

🔗 References

📤 Share & Export