CVE-2025-10564 is a high severity SQL injection flaw (CVSS 7.3) in Campcodes Grocery Sales and Inventory System 1.0. The ID parameter of /ajax.php?action=delete_category is not safely handled. The record names no fixed version, so restrict access, patch the query code yourself, and scan your dependencies.
What's affected
The record lists Campcodes Grocery Sales and Inventory System 1.0. The affected file is /ajax.php?action=delete_category, and the vulnerable input is ID.
No fixed version appears in the record. I could not confirm a patched release from the sources available, so check the Campcodes site and the referenced report before assuming a fix exists. The CVSS vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L, which means network reachable, low complexity, no user interaction, and no privileges required.
How to check if you're exposed
Start by confirming the application is deployed and the file exists. Then check how the ID value reaches the database.
find /var/www -name "ajax.php" 2>/dev/null
grep -rn "ID" $(find /var/www -name "ajax.php")
If the value is concatenated into a query string instead of passed as a bound parameter, the code is vulnerable. Then check web server access logs for requests to this path that carry quotes, SQL keywords or unusually long values.
You can also paste your dependency manifest into the free in-browser scan at gold.safeguard.sh/scan. It will not find an application like this one if you installed it as a standalone folder, so inventory it by hand.
What to do now
- Take
/ajax.php?action=delete_categoryoffline or restrict it by network address or authentication until it is fixed. - Rewrite the query to use prepared statements with bound parameters for
ID. - Run the database account for this application with the least privileges it needs.
- Put a web application firewall rule in front of the endpoint as a stopgap, knowing it is not a fix.
- Review logs and database contents for signs of misuse, and rotate any credentials stored in the affected database.
- Decide whether this software should be in production at all if the maintainer does not ship fixes.
Why it matters
This is CWE-89 within the broader injection class CWE-74. The application builds a database query from text the user supplies, and the database cannot tell the developer's query from the attacker's additions. The result can be reading, changing or deleting data, which fits the low confidentiality, integrity and availability impact in the vector.
The fix pattern is old and well known: parameterized queries. The harder question for small web applications is who will apply it. Because no privileges are required in the vector, anyone who can reach the page can try the request. The record does not flag this CVE as a CISA Known Exploited Vulnerability, so there is no confirmation here that it is exploited in the wild.
The record also says the exploit has been disclosed to the public. That is a statement about published details, not a confirmation of attacks, so treat the timeline as short without assuming a breach.
Planning for software with no vendor fix
When no patched version is named, you have three options: fix it yourself, shield it, or retire it. Fixing it yourself works well for small PHP applications, since the change is usually one query. Shielding means network controls and a firewall rule. Retiring means moving to a maintained alternative.
Whichever you choose, write the decision down with an owner and a review date. Unpatched software tends to be forgotten rather than decided on. Continuous monitoring of your inventory against new advisories makes sure a fix, if one appears later, does not slip past you.
Try it yourself
Click through it at your own pace, or open it full screen.
Quick check
Is there a fixed version of Grocery Sales and Inventory System?
The record lists none. Check the Campcodes site and the referenced report. Until then, restrict the endpoint and fix the code yourself.
Is this being exploited in the wild?
The record does not flag it as a CISA KEV entry. It does say the exploit has been published, so assume attackers can reproduce it.
Sources
- Safeguard Gold entry for CVE-2025-10564
- NVD record for the CVE, as supplied in the Safeguard CVE feed
- The links below come from that record. Several could not be opened when this post was reviewed, so confirm details with the vendor.
- https://github.com/zzb1388/cve/issues/75
- https://www.campcodes.com/
- https://vuldb.com/?ctiid.324478
- https://vuldb.com/?id.324478
Last reviewed: 19 October 2026.