{"id":82178,"date":"2025-10-08T09:39:28","date_gmt":"2025-10-08T09:39:28","guid":{"rendered":""},"modified":"2025-10-14T23:01:59","modified_gmt":"2025-10-15T05:01:59","slug":"cve-2025-52039-sql-injection-vulnerability-in-frappe-erpnext","status":"publish","type":"post","link":"https:\/\/www.ameeba.com\/blog\/cve-2025-52039-sql-injection-vulnerability-in-frappe-erpnext\/","title":{"rendered":"<strong>CVE-2025-52039: SQL Injection Vulnerability in Frappe ERPNext<\/strong>"},"content":{"rendered":"<p><strong>Overview<\/strong><\/p>\n<p>In this blog post, we will be diving deep into the details of a high severity security vulnerability (CVE-2025-52039) identified in Frappe ERPNext 15.57.5. This vulnerability, which lies in the get_material_requests_based_on_supplier() function, creates a potential for SQL Injection attacks. ERPNext is a popular open-source Enterprise Resource Planning (ERP) software used by many organizations to manage their businesses. This <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-9358-critical-buffer-overflow-vulnerability-in-linksys-range-extenders\/\"  data-wpil-monitor-id=\"89369\">vulnerability has the potential to affect a wide range<\/a> of businesses across various sectors and could lead to system compromise or data leakage if left unaddressed.<\/p>\n<p><strong>Vulnerability Summary<\/strong><\/p>\n<p>CVE ID: CVE-2025-52039<br \/>\nSeverity: High, CVSS score 8.2<br \/>\nAttack Vector: Network<br \/>\nPrivileges Required: Low<br \/>\nUser Interaction: None<br \/>\nImpact: <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-10533-critical-vulnerability-in-firefox-and-thunderbird-leading-to-potential-system-compromise\/\"  data-wpil-monitor-id=\"89395\">Potential system<\/a> compromise and data leakage<\/p>\n<p><strong>Affected Products<\/strong><\/p><div id=\"ameeb-4190489829\" class=\"ameeb-content-2 ameeb-entity-placement\"><div style=\"border-left: 4px solid #555; padding-left: 20px; margin: 48px 0; font-family: Roboto, sans-serif; color: #ffffff; line-height: 1.6; max-width: 700px;\">\r\n  <h2 style=\"margin-top: 0; font-size: 20px; font-weight: 600; display: flex; align-items: center;\">\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\" style=\"display: inline-flex; align-items: center; margin-right: 8px;\">\r\n      <img decoding=\"async\" src=\"https:\/\/www.ameeba.com\/blog\/wp-content\/uploads\/2025\/10\/Best-App-icon-Ameeba.png\" alt=\"Ameeba Chat Icon\" style=\"width: 40px; height: 40px;\" \/>\r\n    <\/a>\r\n    A new way to communicate\r\n  <\/h2>\r\n\r\n  <p style=\"margin-bottom: 12px;\">\r\n    Ameeba Chat is built on encrypted identity, not personal profiles.\r\n  <\/p>\r\n\r\n  <p style=\"margin-bottom: 16px;\">\r\n    Message, call, share files, and coordinate with identities kept separate.\r\n  <\/p>\r\n\r\n  <ul style=\"list-style: none; padding-left: 0; margin-bottom: 20px;\">\r\n    <li>\u2022 Encrypted identity<\/li>\r\n    <li>\u2022 Ameeba Chat authenticates access<\/li>\r\n    <li>\u2022 Aliases and categories<\/li>\r\n    <li>\u2022 End-to-end encrypted chat, calls, and files<\/li>\r\n    <li>\u2022 Secure notes for sensitive information<\/li>\r\n  <\/ul>\r\n\r\n  <p style=\"font-style: italic; font-weight: 600; margin-bottom: 24px;\">\r\n    Private communication, rethought.\r\n  <\/p>\r\n\r\n  <div style=\"display: flex; flex-wrap: wrap; gap: 12px;\">\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\/download\" style=\"background-color: #ffffff; color: #000000; padding: 10px 20px; text-decoration: none; border-radius: 6px; font-weight: 500;\">Download Ameeba Chat<\/a>\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\" style=\"border: 1px solid #ffffff; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 6px; font-weight: 500;\">Learn More<\/a>\r\n  <\/div>\r\n<\/div>\r\n<\/div>\n<p>Product | Affected Versions<\/p>\n<p>Frappe ERPNext | 15.57.5<\/p>\n<p><strong>How the Exploit Works<\/strong><\/p>\n<p>The vulnerability resides in the get_material_requests_based_on_supplier() function in the material_request.py file. This function is susceptible to <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-52085-sql-injection-vulnerability-in-yoosee-application\/\"  data-wpil-monitor-id=\"89364\">SQL Injection<\/a> attacks due to inadequate sanitization of the &#8216;txt&#8217; parameter. An attacker can exploit this <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-10183-xxe-injection-vulnerability-in-teccom-tecconnect-4-1\/\"  data-wpil-monitor-id=\"89349\">vulnerability by injecting<\/a> malicious SQL queries into the &#8216;txt&#8217; parameter. These queries can then be executed directly on the database, <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-55743-serious-vulnerability-in-unopim-allows-potential-system-compromise\/\"  data-wpil-monitor-id=\"89697\">potentially allowing<\/a> the attacker to view, modify, or delete data.<\/p>\n<p><strong>Conceptual Example Code<\/strong><\/p><div id=\"ameeb-2545777940\" class=\"ameeb-content ameeb-entity-placement\"><div class=\"poptin-embedded\" data-id=\"f6b387694f681\"><\/div>\r\n\r\n\r\n\r\n\r\n\r\n<\/div>\n<p>Below is a conceptual example of how the vulnerability might be exploited. This HTTP request contains a malicious SQL query in the &#8216;txt&#8217; parameter.<\/p>\n<pre><code class=\"\" data-line=\"\">POST \/api\/method\/erpnext.stock.doctype.material_request.material_request.get_material_requests_based_on_supplier HTTP\/1.1\nHost: target.example.com\nContent-Type: application\/json\n{ &quot;txt&quot;: &quot;&#039; OR &#039;1&#039;=&#039;1&#039;; DROP TABLE users; --&quot; }<\/code><\/pre>\n<p>This payload would cause the application to execute the SQL query, potentially leading to <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-55370-unauthorized-access-control-vulnerability-in-jsherp-v3-5\/\"  data-wpil-monitor-id=\"89352\">unauthorized access<\/a> to sensitive data or even deletion of critical data (in this case, the &#8216;users&#8217; table).<\/p>\n<p><strong>Mitigation<\/strong><\/p>\n<p>The most effective way to mitigate this vulnerability is by applying the patch provided by the vendor. If the patch cannot be applied immediately, using a Web Application Firewall (WAF) or Intrusion Detection System (IDS) can provide temporary protection by detecting and blocking <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-57761-unpatched-sql-injection-vulnerability-in-wegia-web-manager\/\"  data-wpil-monitor-id=\"89749\">SQL Injection<\/a> attacks. It is also recommended to use prepared statements or parameterized queries to prevent <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2024-13149-critical-sql-injection-vulnerability-in-arma-store-armalife\/\"  data-wpil-monitor-id=\"89914\">SQL Injection<\/a> in the long term.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview In this blog post, we will be diving deep into the details of a high severity security vulnerability (CVE-2025-52039) identified in Frappe ERPNext 15.57.5. This vulnerability, which lies in the get_material_requests_based_on_supplier() function, creates a potential for SQL Injection attacks. ERPNext is a popular open-source Enterprise Resource Planning (ERP) software used by many organizations to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[1],"tags":[],"vendor":[],"product":[],"attack_vector":[74],"asset_type":[],"severity":[],"exploit_status":[],"class_list":["post-82178","post","type-post","status-publish","format-standard","hentry","category-uncategorized","attack_vector-sql-injection"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/82178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/comments?post=82178"}],"version-history":[{"count":8,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/82178\/revisions"}],"predecessor-version":[{"id":82785,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/82178\/revisions\/82785"}],"wp:attachment":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/media?parent=82178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/categories?post=82178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/tags?post=82178"},{"taxonomy":"vendor","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/vendor?post=82178"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/product?post=82178"},{"taxonomy":"attack_vector","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/attack_vector?post=82178"},{"taxonomy":"asset_type","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/asset_type?post=82178"},{"taxonomy":"severity","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/severity?post=82178"},{"taxonomy":"exploit_status","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/exploit_status?post=82178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}