Frappe ERPNext
CVE-2025-66440
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege ERPNext account
-
ExploitSubmit SQL payload in to_posting_date parameter
-
ExecutionTrigger injection in get_outstanding_reference_documents query
-
ImpactExfiltrate arbitrary database records
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated ERPNext session with access to the payment-entry functionality that calls get_outstanding_reference_documents() (consistent with PR:L); the attacker injects SQL through the to_posting_date parameter, which is interpolated into the query without parameter binding. No special or non-default configuration, plugin, or user interaction is needed, and the flaw affects default installations of Frappe ERPNext through version 15.89.0. The primary limiting factor is the authentication requirement - a valid low-privilege account is necessary, so fully unauthenticated exploitation is not indicated; exposure is therefore highest in multi-tenant, self-service, or internet-facing deployments where low-privilege accounts are easy to obtain. |
| Impact | This is a genuine, actionable priority rather than an inflated high-CVSS artifact. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 8.8) describes a network-reachable, low-complexity SQL injection (CWE-89) requiring only a low-privilege authenticated session and no user interaction - a profile that is reliably exploitable once an attacker has any valid ERPNext account. The input reports POC=YES with a public write-up (iamanc.github.io), which materially raises real-world risk because a working technique is documented; however, the CVE is NOT listed in CISA KEV and no EPSS probability or SSVC decision data was supplied in the input, so there is no evidence of active, widespread exploitation at this time - only that exploit code is public. The one signal tension worth flagging: the description frames the impact as data extraction ('extract arbitrary data from the database'), which cleanly supports C:H, whereas the I:H/A:H ratings assume the injection point also permits writes or destructive/stacked queries - plausible for SQLi but not explicitly demonstrated in the provided description, so integrity/availability impact should be verified against the actual query context. Net: treat as a high-priority patch for any internet-exposed or multi-tenant ERPNext deployment, driven by low attack complexity plus public POC, while recognizing active exploitation is not confirmed. |
| Exploit ScenarioDerived | An attacker with any low-privilege authenticated ERPNext account (or a user who compromises such credentials) invokes the payment-entry workflow and supplies a crafted SQL payload in the to_posting_date parameter, which is interpolated directly into the backend query. Because a public proof-of-concept write-up exists, the attacker can follow a known technique to dump sensitive accounting, customer, and credential data from the database. The low attack complexity (AC:L) and network vector (AV:N) make this reliable against any reachable instance once authenticated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database contents via the to_posting_date parameter in get_outstanding_reference_documents(). Publicly available exploit code exists, though no active exploitation is confirmed (CISA KEV not indicated). The flaw requires authentication (PR:L) but no special configuration, making it a significant risk for multi-tenant or internet-facing deployments where low-privilege accounts are common.
RemediationAI
No vendor-released patch is referenced in the provided intelligence; monitor the vendor security page (https://github.com/frappe/frappe/security) for a patched version. Until a fix is available, apply compensating controls: restrict access to the payment entry functionality to trusted users and enforce least privilege to limit the pool of authenticated accounts that can exploit the flaw. Deploy web application firewall (WAF) rules to detect and block SQL injection patterns in the to_posting_date parameter, though this may have false positives and requires tuning. Monitor database logs for anomalous queries originating from the payment entry module. Additionally, review user roles and permissions to ensure that only necessary personnel have access to the vulnerable function. In multi-tenant or internet-facing deployments, consider additional network segmentation and authentication hardening to reduce exposure.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Frappe ERPNext is an open-source enterprise resource planning platform. The vulnerability resides in the get_outstanding_reference_documents() function within erpnext/accounts/doctype/payment_entry/payment_entry.py, where the to_posting_date parameter is directly interpolated into an SQL query without parameter binding or sanitization (CWE-89). This allows an authenticated attacker with access to the payment entry functionality to inject arbitrary SQL payloads, potentially exfiltrating sensitive data from the database. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) indicates network exploitable, low complexity, requiring low privileges, no user interaction, and high impact on confidentiality, integrity, and availability. The CPE entry cpe:2.3:a:frappe:erpnext:*:*:*:*:*:*:*:* confirms that all versions up to and including 15.89.0 are affected.
Know when Frappe gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable endpoint (AV:N) with no mitigating conditions (AC:L) needs a low-privilege authenticated account (PR:L); SQLi enables full data read and plausibly write/destructive queries, so C/I/A:H.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
An issue was discovered in Frappe ERPNext through 15.89.0. Function get_outstanding_reference_documents() at erpnext/accounts/doctype/payment_entry/payment_entry.py is vulnerable to SQL Injection. It allows an attacker to extract arbitrary data from the database by injecting SQL payloads via the to_posting_date parameter, which is directly interpolated into the query without proper sanitization or parameter binding.
Executive ViewAI
Frappe ERPNext deployments through 15.89.0 are affected by a high-severity authenticated SQL injection that allows low-privilege users to read arbitrary database contents. Publicly available exploit code exists, and no vendor-released patch identified at time of analysis, so internet-facing or multi-tenant instances could expose financial, customer, and operational data. Leadership should treat this as a priority data-disclosure risk and authorize interim controls while a fix is developed.
No vendor-released patch identified at time of analysis; interim mitigations include restricting network access to affected ERPNext instances, enforcing MFA and least privilege, deploying WAF/IPS virtual patching for the to_posting_date parameter, limiting database permissions, rotating credentials, and monitoring for anomalous SQL queries.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
Affected Products (CPE)NVD
Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS
SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev
Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie
SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL
In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re
In Frappe ERPNext 15.57.5, the function get_stock_balance_for() at erpnext/stock/doctype/stock_reconciliation/stock_reco
NVD
CVE.org
EPSS
GitHub
Exploit-DB