Safeguard
Vulnerability Analysis•

CVE-2026-2116: SQL Injection in Society Edit Expenses

CVE-2026-2116 is a SQL injection in the expense edit page of itsourcecode Society Management System 1.0 (CVSS 7.3). No fix is listed, so isolate it.

Safeguard Security Team
3 min read

CVE-2026-2116 is a high severity SQL injection flaw (CVSS 7.3) in itsourcecode Society Management System 1.0. The expenses_id parameter of /admin/edit_expenses.php reaches a database query unsafely. The record lists no fixed version, so remove the app from public reach and fix the query yourself.

What's affected

The record names itsourcecode Society Management System 1.0. The weakness is classed as CWE-89 (SQL injection) and CWE-74 (injection). The vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L means network reachable, low complexity, no login, no user interaction.

No fixed version is listed. I could not find a vendor advisory or patch to confirm one, so treat every copy of this release as affected until you hear otherwise. The record says a working exploit has been publicly disclosed. It does not say the flaw is exploited in the wild, and it is not in the CISA Known Exploited Vulnerabilities catalog.

How to check if you're exposed

Start by finding out whether you run it at all. These apps are often copied onto a server for a class project or an internal pilot and then forgotten.

find /var/www -type f -path "*/admin/edit_expenses.php" 2>/dev/null

If that returns a hit, open the file and look at how the expenses_id value is used. Concatenating it into an SQL string is the problem. Then check your web server logs for requests to that file from addresses you do not recognize, and look for unusually long or odd looking values in the expenses_id parameter.

For any dependency manifest the project does ship, the free in-browser scan shows known issues in its packages.

What to do now

  1. Take the app off the public internet, or put it behind a VPN or an IP allowlist, today.
  2. Replace string building in /admin/edit_expenses.php with a prepared statement and bound parameters. The same fix belongs in every other file that builds queries from request input.
  3. Run the database account with the least privilege the app needs. It should not own the schema, and it should not be able to read tables the app never touches.
  4. Watch the vendor page and the CVE-2026-2116 entry for a patched release, and retire the app if none appears.

Why it matters

An edit page needs to load a row by its ID, which is exactly where raw input tends to meet a query. This is the third injection point reported in this one product, and each one suggests the same coding habit throughout.

SQL injection happens when request text is treated as part of a query instead of as a plain value. The fix is to send the query and the values separately.

$stmt = $pdo->prepare('SELECT * FROM expenses WHERE id = ?');
$stmt->execute([$id]);

Quick check

Is there a patch for CVE-2026-2116?

The record lists none, and I could not confirm a vendor fix. Check the vendor site and the NVD entry before assuming one exists.

Can a web application firewall stop this?

It can reduce casual abuse, but it is a stopgap. The real fix is in the code, so use the firewall rule to buy time while you change the query.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.