Description
ERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.116.0 and 16.23.0, erpnext/selling/report/inactive_customers/inactive_customers.py accepts an unvalidated doctype filter and interpolates it into raw SQL in get_sales_details and get_last_sales_amt, allowing an authenticated user to extract sensitive information and manipulate database queries. This issue is fixed in versions 15.116.0 and 16.23.0.
References6
- github.com/frappe/erpnext/commit/29dd6e6681d20bbacb69517d2d2c87…
- github.com/frappe/erpnext/commit/f43af6624610e874e61ad3faf8701e…
- github.com/frappe/erpnext/pull/55721
- github.com/frappe/erpnext/releases/tag/v15.116.0
- github.com/frappe/erpnext/releases/tag/v16.23.0
- github.com/frappe/erpnext/security/advisories/GHSA-x35x-4mvx-h9…
Metrics
- CVSS 3.1
-
7.6
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L - EPSS — exploit probability
- 0% percentile: 41 · as of 11 November 2026
- CWE
- CWE-89
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.