Safeguard
Vulnerability Analysis•

CVE-2025-13168: Medium SQL Injection in ury-erp ury

CVE-2025-13168 is a medium severity SQL injection in ury-erp ury up to 0.2.0. Upgrade to version 0.2.1, which the record says mitigates the issue.

Safeguard Security Team
3 min read

CVE-2025-13168 is a medium severity SQL injection (CVSS 6.3) in ury-erp ury, in versions up to 0.2.0. The vulnerable function takes a search_term argument. The record says upgrading to version 0.2.1 mitigates the issue, so move to 0.2.1 or later.

What's affected

The affected product is ury-erp ury, versions up to and including 0.2.0. The record places the flaw in the function overrided_past_order_list in ury/ury/api/pos_extend.py, where the search_term argument ends up inside a SQL query.

The record states that upgrading to version 0.2.1 mitigates the issue and names a patch commit, 063384e0dddfd191847cd2d6524c342cc380b058, in the ury-erp repository. It also says the vendor replied professionally, which is a useful sign when you decide how much to trust the project's fix cadence.

The weakness is CWE-89 under the broader CWE-74. The vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L, which means the attacker needs a low privilege account first. The kev flag is false.

How to check if you're exposed

Check which version of ury you have deployed. ury runs as an app on a Frappe bench, so you can list installed apps and their versions:

bench version

Look for the ury line. If it shows 0.2.0 or lower, you are affected. If you installed from Git, check the commit instead:

cd apps/ury && git log -1 --format=%H
git merge-base --is-ancestor 063384e0dddfd191847cd2d6524c342cc380b058 HEAD && echo patched || echo not patched

The second command tells you whether the patch commit is in your history. If you vendor the code or run a fork, apply the same test to your branch.

If you track dependencies in a repository, a dependency scan will flag the version too. The free in-browser dependency scan is a quick way to try.

What to do now

  1. Find every ury instance you run, including staging.
  2. Back up the site and database before changing anything.
  3. Upgrade ury to 0.2.1 or later, then run your usual migrate and restart steps.
  4. Re-run bench version and confirm the new number.
  5. If you cannot upgrade yet, limit which users can reach the point of sale search and review who holds those accounts, since the attack needs a low privilege login.
  6. Review database access logs for unusual search queries since the CVE was published on 14 November 2025.
  7. Keep the patch commit in your notes so a future audit can confirm the fix without guessing.

Why it matters

The function builds a query using the search_term value. When that value is placed into the statement as text instead of being bound as a parameter, the database cannot tell data from instructions. That is CWE-89, a form of injection.

A point of sale and ERP system holds order history, customer details and staff accounts, so even a medium score deserves quick attention. The requirement for a low privilege login limits the audience, but in a restaurant or retail setting many staff accounts exist, and shared passwords are common.

Try it yourself

Click through it at your own pace, or open it full screen.

Quick check

What is the fixed version?

The record says upgrading to version 0.2.1 mitigates the issue. It also lists the patch commit 063384e0dddfd191847cd2d6524c342cc380b058.

Does this need a login?

Yes, a low privilege account. The vector shows PR:L.

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.