Safeguard
Vulnerability Analysis•

CVE-2025-3176: High SQL Injection in Project Worlds Lawyer System

CVE-2025-3176 is a High SQL injection in Online Lawyer Management System via /single_lawyer.php. No fix is listed, so limit access and use bound queries.

Safeguard Security Team
5 min read

CVE-2025-3176 is a High severity (CVSS 7.3) SQL injection in Project Worlds Online Lawyer Management System 1.0, in the file /single_lawyer.php through the u_id parameter. The record lists no fixed version. Treat the application as unpatched, restrict who can reach it, and replace the unsafe query with a parameterized one.

What's affected

The record covers Project Worlds Online Lawyer Management System version 1.0. The affected file is /single_lawyer.php, and the manipulation of the u_id parameter leads to SQL injection. The description says the attack can be started remotely, and that the exploit has been disclosed to the public and may be used. It does not say the flaw is exploited in the wild, and the CVE is not in the CISA KEV list.

The CVSS vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L. In that scoring, no account is needed to reach it. The weaknesses are CWE-74 (injection) and CWE-89 (SQL injection). Impact scores are low in each of confidentiality, integrity and availability, which is why the number stays below Critical.

The record names no fixed version and no vendor patch. The same product has other SQL injection entries from the same series of reports: CVE-2025-3170, CVE-2025-3171, CVE-2025-3172, CVE-2025-3173, CVE-2025-3174, CVE-2025-3175. If you run this software, fix them all in one pass.

How to check if you're exposed

Start with an inventory of web applications that use this code base. Many small PHP projects get installed once and forgotten, so search the file system:

find / -type f -name "single_lawyer.php" -not -path "*/proc/*" 2>/dev/null

For each hit, open the file and find where the u_id value is used. If it is concatenated into a query string, the code matches the record. Next, check whether the application is reachable from the internet. From a machine outside your network, request the path /single_lawyer.php on your site and see if it answers, or check your reverse proxy and firewall rules.

Last, review the database account the application uses. If it is a highly privileged account, the impact of an injection is larger than the score suggests.

What to do now

  1. Check the vendor's site and the public report for a patched release. The record names none, so do not assume one exists.
  2. Take the application off the public internet, or put it behind a VPN, an IP allowlist or HTTP authentication until the code is fixed.
  3. Rewrite the query that uses the u_id parameter in /single_lawyer.php to use prepared statements with bound values. Example:
$stmt = $con->prepare("SELECT * FROM records WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();

That is an illustration for a PHP and MySQL stack, with a stand in table name. Use the right type letter for each value, and apply the same change to every query in the file, not only the one named in the record. 4. Run the application's database account with the least privileges it needs. It should not own the schema or be able to read other databases. 5. Review access logs and database contents for signs of misuse, and rotate any credentials stored in the database if you see any.

Why it matters

This record is another example of the plain concatenation bug. The application takes the u_id value from a request and places it inside an SQL statement. The database cannot tell which part is the developer's command and which part is the visitor's data. The attached weakness classes are CWE-74 for injection and CWE-89 for SQL injection.

The fix is not clever. Use prepared statements with bound parameters for every query, validate the type of each input, and give the database account only the rights it needs. Source code projects of this kind are often downloaded as starting points or learning material, then deployed with little change. If that describes your Online Lawyer Management System installation, you own its security from the first day, and a code review for string built queries is the right next step.

A practical point for defenders: the record says a public exploit exists, so scanners and curious visitors can find the page fast. Even though the CVSS score is only 7.3, an internet facing page that talks to a database with customer or patient style records deserves the same care as a higher scored bug.

Quick check

Is there a patched version of Online Lawyer Management System?

The record lists no fixed version. Check the vendor's site and the public report, and if nothing is published, fix the query in /single_lawyer.php yourself or take the application out of service.

Does a firewall rule fix this?

It reduces exposure, but the flaw stays in the code. A web application firewall can block some probes. The real fix is a parameterized query in /single_lawyer.php.

Sources

Last reviewed: 19 October 2026.

Never miss an update

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

We email you a link to confirm, and only then add you to the list. Unsubscribe in one click. Privacy

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.