CVE-2025-10562

7.3 HIGH

📋 TL;DR

This vulnerability allows remote attackers to execute arbitrary SQL commands via the ID parameter in the /ajax.php?action=save_product endpoint in Campcodes Grocery Sales and Inventory System 1.0. This affects all deployments of version 1.0 that have this endpoint exposed, potentially leading to data theft, modification, or system compromise.

💻 Affected Systems

Products:
  • Campcodes Grocery Sales and Inventory System
Versions: 1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of version 1.0 are vulnerable if the /ajax.php endpoint is accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including theft of sensitive data (customer information, financial records), data destruction, and potential remote code execution leading to full system takeover.

🟠

Likely Case

Unauthorized data access and modification, potentially exposing sensitive business and customer information, with possible privilege escalation within the application.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, potentially only allowing data viewing without modification capabilities.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

The exploit has been published and requires minimal technical skill to execute. Remote exploitation is confirmed possible.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

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

Restart Required: No

Instructions:

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

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Implement proper input validation and parameterized queries for the ID parameter in /ajax.php?action=save_product

Modify ajax.php to use prepared statements: $stmt = $conn->prepare('UPDATE products SET ... WHERE id = ?'); $stmt->bind_param('i', $_POST['ID']);

Web Application Firewall (WAF)

all

Deploy a WAF with SQL injection protection rules to block malicious requests

Configure WAF rules to detect and block SQL injection patterns in POST parameters

🧯 If You Can't Patch

  • Implement network segmentation to restrict access to the vulnerable system
  • Deploy intrusion detection systems to monitor for SQL injection attempts

🔍 How to Verify

Check if Vulnerable:

Test the /ajax.php?action=save_product endpoint with SQL injection payloads in the ID parameter

Check Version:

Check system documentation or configuration files for version information

Verify Fix Applied:

Test with SQL injection payloads to confirm they are properly sanitized or blocked

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL error messages in application logs
  • Multiple failed login attempts or unusual database queries

Network Indicators:

  • HTTP POST requests to /ajax.php with SQL keywords in parameters
  • Unusual database connection patterns

SIEM Query:

source="web_logs" AND uri="/ajax.php" AND (param="ID" AND value MATCHES "(?i)(union|select|insert|update|delete|drop|--|#|\*|;)")

🔗 References

📤 Share & Export