Frappe
Don't miss out!
Thousands of developers use stack.watch to stay informed.Get an email whenever new security vulnerabilities are reported in any Frappe product.
RSS Feeds for Frappe security vulnerabilities
Create a CVE RSS feed including security vulnerabilities found in Frappe products with stack.watch. Just hit watch, then grab your custom RSS feed url.
Products by Frappe Sorted by Most Security Vulnerabilities since 2018
By the Year
In 2026 there have been 105 vulnerabilities in Frappe with an average score of 7.0 out of ten. Last year, in 2025 Frappe had 46 security vulnerabilities published. That is, 59 more vulnerabilities have already been reported in 2026 as compared to last year. However, the average CVE base score of the vulnerabilities in 2026 is greater by 0.15.
| Year | Vulnerabilities | Average Score |
|---|---|---|
| 2026 | 105 | 7.04 |
| 2025 | 46 | 6.88 |
| 2024 | 4 | 6.47 |
| 2023 | 4 | 7.20 |
| 2022 | 7 | 5.70 |
| 2021 | 0 | 0.00 |
| 2020 | 13 | 6.40 |
| 2019 | 4 | 6.10 |
| 2018 | 2 | 0.00 |
It may take a day or so for new Frappe vulnerabilities to show up in the stats or in the list of recent security vulnerabilities. Additionally vulnerabilities may be tagged under a different product or component name.
Recent Frappe Security Vulnerabilities
| CVE | Date | Vulnerability | Products |
|---|---|---|---|
| CVE-2026-94113 | Sep 20, 2026 |
Frappe ERPNext <15.121.0/16.34.0> timesheet info disclosureFrappe ERPNext versions before 15.121.0 and 16.x before 16.34.0 contain an information disclosure vulnerability in whitelisted timesheet endpoints that fail to enforce doctype permissions. Authenticated attackers can call get_projectwise_timesheet_data, get_timesheet_detail_rate, and get_timesheet endpoints to enumerate and retrieve billable time logs including project names, billing amounts, and work descriptions without proper authorization checks. |
|
| CVE-2026-54343 | Sep 17, 2026 |
Frappe LMS <2.52.1 Path Traversal in SCORMRenderer.renderFrappe Learning Management System (LMS) is a learning system that helps users structure their content. Prior to version 2.52.1, a remote attacker can request a traversal path handled by SCORMRenderer.render in lms/page_renderers.py. The renderer constructs and opens a server-side path without first confirming that its real path remains within public/scorm, allowing files outside the SCORM directory to be read when they are accessible to the server process. This issue is fixed in version 2.52.1. |
|
| CVE-2026-54524 | Sep 17, 2026 |
SQL Injection in Frappe HR 16.6 and earlier's Salary Payments ReportFrappe HR is an open-source human resources management solution (HRMS). Prior to 16.7.0, an authenticated user with the HR User role can inject SQL through filters in the Salary Payments Based on Payment Mode report. In hrms/payroll/report/salary_payments_based_on_payment_mode/salary_payments_based_on_payment_mode.py, get_conditions constructs filter clauses from user-controlled values and get_data incorporates those clauses into a string-formatted SQL query, allowing extraction of arbitrary database data. This issue is fixed in 16.7.0. |
|
| CVE-2023-51769 | Sep 14, 2026 |
Frappe before 14.49.0 allows an XSS attackFrappe before 14.49.0 allows an XSS attack that is associated with blog pages and exception pages. |
|
| CVE-2026-53761 | Sep 04, 2026 |
Frappe CRM Auth Bypass via Logged Invitation Keys (pre-1.73.0)Frappe CRM is an open-source customer relationship management tool. Prior to version 1.73.0, there is an authentication bypass vulnerability via logged invitation keys in crm/api. This issue has been patched in version 1.73.0. |
|
| CVE-2026-82634 | Aug 30, 2026 |
Frappe Framework RCE via Auth Bypass in Jinja Render EndpointFrappe Framework development builds contain an authorization flaw in the render_jinja_template endpoint that allows low-privileged users to render arbitrary Jinja templates by supplying raw template strings. Attackers with print permission on any document can execute arbitrary SELECT statements against unrelated tables, including reading password hashes from the __Auth table. |
|
| CVE-2026-81731 | Aug 27, 2026 |
XSS in Frappe 15.11.0-16.32.0 workspace card descriptionFrappe 15.11.0 through 16.32.0 stores and renders the workspace card description without XSS filtering. The description field of the Workspace Link doctype is declared with "ignore_xss_filter": 1 in frappe/desk/doctype/workspace_link/workspace_link.json, and _sanitize_content() in frappe/model/base_document.py skips any field carrying that flag, so the value is stored exactly as submitted. frappe.desk.desktop.get_desktop_page returns it unchanged, and LinksWidget.set_body() in frappe/public/js/frappe/widgets/links_widget.js interpolates it into a Bootstrap popover created with html: true, by way of the __() translation helper, which performs no HTML escaping. A user holding the Workspace Manager role can therefore place arbitrary markup in a public workspace's card description and have it execute in the session of any desk user who opens that workspace and hovers the description, including higher-privileged users, allowing session token theft and authenticated requests as the victim. The flag is removed on the development branch but remains present in the shipped 15.x and 16.x release lines, so no released version carries the fix. |
|
| CVE-2026-66003 | Aug 26, 2026 |
Frappe <15.115.0: REST API Bypass via Linked DocTypesFrappe is a full-stack web application framework written in Python and JavaScript. Prior to version 15.115.0, an access control bypass in the REST API allows a user to read data from Linked DocTypes that they are not authorized to access. When a document references another document through a Link field, the framework does not consistently enforce the linked DocType's own permissions when the record is retrieved through the REST API, so a low-privileged authenticated user can obtain fields from linked records outside their permitted scope. This issue is fixed in version 15.115.0. |
|
| CVE-2026-66002 | Aug 20, 2026 |
Frappe <15.115.0 & <16.27.0: User Enum via PersonalDataDownloadResponseFrappe is a full-stack web application framework. Prior to 15.115.0 and 16.27.0, the public request-data web form and PersonalDataDownloadRequest class in frappe/website/doctype/personal_data_download_request/personal_data_download_request.py return distinguishable response shapes for registered and unregistered email addresses, including the user_name field and persistence behavior. A remote attacker can compare the responses to enumerate registered users. This issue is fixed in versions 15.115.0 and 16.27.0. |
|
| CVE-2026-66001 | Aug 20, 2026 |
OAuth2 Consent Flaw in Frappe (<15.114/16.26) Bad CSRF & Client ScopeFrappe is a full-stack web application framework. Prior to 15.114.0 and 16.26.0, the approve and authorize functions in frappe/integrations/oauth2.py allow the OAuth2 consent flow to proceed without restricting approve to POST, without a csrf_token in frappe/templates/includes/oauth_confirmation.html, and without scoping an active OAuth token check to the requesting client. An attacker can cause an authenticated user to approve an OAuth grant or reuse authorization state for the wrong client, exposing data and permitting actions within the granted scopes. This issue is fixed in versions 15.114.0 and 16.26.0. |
|
| CVE-2026-62315 | Aug 20, 2026 |
Frappe <16.31.0: Mass-assign via client endpointFrappe is a full-stack web application framework. In version 16.31.0 and earlier, frappe.client.set_value in frappe/client.py checks a dictionary supplied through the fieldname parameter against forbidden standard and child-table fields before parsing the dictionary into individual field names. An authenticated caller can exploit this type confusion to mass-assign protected fields through the client endpoint. No released fixed version is available as of this review. |
|
| CVE-2026-63654 | Aug 20, 2026 |
Frappe 16.31.0 bulk_workflow_approval endpoint allows nonPOST, enabling CSRFFrappe is a full-stack web application framework. In version 16.31.0 and earlier, the whitelisted frappe.model.workflow.bulk_workflow_approval endpoint in frappe/model/workflow.py accepts safe HTTP methods for state-changing workflow approvals because the endpoint is not restricted to POST. An attacker can induce an authenticated victim browser to submit an approval action with the victim privileges. No released fixed version is available as of this review. |
|
| CVE-2026-53569 | Aug 20, 2026 |
Frappe <=16.31.0: Missing Read Permission on Like/MarkasSeen EndpointsFrappe is a full-stack web application framework. In version 16.31.0 and earlier, the whitelisted toggle_like and mark_as_seen endpoints in frappe/desk/like.py and frappe/desk/doctype/note/note.py do not enforce read permission before modifying _liked_by metadata or a Note seen state. An authenticated user can interact with documents or notes that the user cannot read, disclosing resource existence and modifying resource-associated metadata. No released fixed version is available as of this review. |
|
| CVE-2026-65822 | Aug 17, 2026 |
ERPNext <15.116.0/16.23.0 SQL Injection via Unvalidated Doctype FilterERPNext 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. |
|
| CVE-2026-65974 | Aug 17, 2026 |
ERPNext 15.x/16.x RCE via frappe.render_templateERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.111.0 and 16.22.0, limited authenticated users can cross a permission boundary in Frappe safe execution because frappe.render_template is exposed without forcing restrict_globals, allowing server-side template injection and remote code execution. This issue is fixed in versions 15.111.0 and 16.22.0. |
|
| CVE-2026-72911 | Aug 10, 2026 |
ERPNext <15.118.0/16.29.0: RCE via unrestricted template renderingERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.118.0 and 16.29.0, the validate_template and render_template calls in erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py render subject, body, and pdf_name fields with unrestricted globals including frappe.utils, allowing an authenticated user with a common operational role to inject template expressions, execute arbitrary server-side code, and read data across the application. This issue is fixed in versions 15.118.0 and 16.29.0. |
|
| CVE-2026-72910 | Aug 10, 2026 |
ERPNext <15.112/16.22 Write-Perm Omission in Account FunctionsERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.112.0 and 16.22.0, the merge_account, pause_job_for_doc, trigger_job_for_doc, change_release_date, and update_cost_center functions across erpnext/accounts/doctype/account/account.py, erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py, erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py, and erpnext/accounts/utils.py omit required write permission checks, allowing authenticated limited users to modify protected data beyond their roles. This issue is fixed in versions 15.112.0 and 16.22.0. |
|
| CVE-2026-72909 | Aug 10, 2026 |
ERPNext <=15.112.0/<=16.23.0: Authenticated Data Leakage ReceivablePayableReportERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.112.0 and 16.23.0, the ReceivablePayableReport prepare_conditions path in erpnext/accounts/report/accounts_receivable/accounts_receivable.py does not apply Customer and Supplier user permissions to the Payment Ledger Entry dynamic-link party field, allowing any authenticated user to read unauthorized cross-company financial data in Accounts Receivable and Accounts Payable reports. This issue is fixed in versions 15.112.0 and 16.23.0. |
|
| CVE-2026-72908 | Aug 10, 2026 |
ERPNext 15/16 SQLi in get_tax_template (v15.109/V16.20)ERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.109.0 and 16.20.0, the get_tax_template function in erpnext/accounts/doctype/tax_rule/tax_rule.py constructs an SQL WHERE clause from request-influenced posting_date and args values, allowing an authenticated low-privilege user to inject SQL and extract sensitive information. This issue is fixed in versions 15.109.0 and 16.20.0. |
|
| CVE-2026-72907 | Aug 10, 2026 |
ERPNext 15/16 add_ac Permission Bypass via ignore_permissionsERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.111.0 and 16.22.0, the add_ac function in erpnext/accounts/utils.py accepts the ignore_permissions argument without enforcing Account create permission, allowing an authenticated limited user to create unauthorized accounting master records and affect financial data integrity and audit trails. This issue is fixed in versions 15.111.0 and 16.22.0. |
|
| CVE-2026-72906 | Aug 10, 2026 |
ERPNext 15.111/16.22 process_statement_of_accounts perm bypassERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.111.0 and 16.22.0, the send_auto_email function in erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py lacks a Process Statement Of Accounts permission check, allowing an authenticated low-privilege user to trigger automated emails outside the permitted role. This issue is fixed in versions 15.111.0 and 16.22.0. |
|
| CVE-2026-66000 | Aug 07, 2026 |
Document Follow Email Permission Bypass in Frappe <15.112/<16.23Frappe is a full-stack web application framework. Prior to 16.23.0 and 15.112.0, Document Follow notification generation does not re-evaluate the recipient's current document permissions, allowing users whose access was revoked or reduced to continue receiving document data by email. This issue is fixed in versions 16.23.0 and 15.112.0. |
|
| CVE-2025-58375 | Aug 07, 2026 |
SQL Injection via insecure endpoint in Frappe <15.72.0Frappe is a full-stack web application framework. Versions 14.96.9 and below, and 15.0.0 through 15.71.0 have an insecure endpoint parameter that is vulnerable to error-based SQL Injection through lack of validation. Sensitive information such as versioning can be retrieved. This issue is fixed in versions 14.96.10 and 15.72.0. |
|
| CVE-2026-66058 | Aug 07, 2026 |
Unrestricted Document Follow API Access in Frappe < 16.20.0 / < 15.112.0Frappe is a full-stack web application framework. Prior to 16.20.0 and 15.112.0, unrestricted access to a Document Follow API (update_follow) is possible for an authenticated user. This issue is fixed in versions 16.20.0 and 15.112.0. |
|
| CVE-2026-66059 | Aug 07, 2026 |
Frappe: Field-level Permissions Bypass in DocType Fields (Before 16.20.0/15.112.0)Frappe is a full-stack web application framework. Prior to 16.20.0 and 15.112.0, a field-level permissions bypass exposes restricted DocType fields. This issue is fixed in versions 16.23.0 and 15.112.0. |
|
| CVE-2026-49391 | Aug 06, 2026 |
Authenticated Stored XSS in Frappe Data Import prior 16.19.0/15.109Frappe is a full-stack web application framework. Prior to 16.19.0 and 15.109.0, Data Import does not escape imported column headers before rendering previews and results, allowing an authenticated importer to persist script content that executes when another user views the import interface. This issue is fixed in versions 16.19.0 and 15.109.0. |
|
| CVE-2026-47765 | Aug 06, 2026 |
Auth bypass on restore/bulk_restore in Frappe < v15.110 or < v16.20Frappe is a full-stack web application framework. Prior to 15.110.0 and 16.20.0, the restore and bulk_restore endpoints do not apply the appropriate document permission checks, allowing an authenticated user to restore deleted documents without the required authorization. This issue is fixed in versions 15.110.0 and 16.20.0. |
|
| CVE-2026-47194 | Aug 06, 2026 |
Frappe: Host Header Manipulation in Magic Login (<15.108.0 & <16.18.3)Frappe is a full-stack web application framework. Prior to 15.108.0 and 16.18.3, temporary magic login link generation can use an attacker-controlled request Host header, allowing a remote attacker to cause emailed login links to point to an attacker-controlled domain and capture the login token when a recipient follows the link. This issue is fixed in versions 15.108.0 and 16.18.3. |
|
| CVE-2026-47185 | Aug 06, 2026 |
Frappe <16.18.0: User Can Edit Others' Workspace (Script Injection)Frappe is a full-stack web application framework. Prior to 16.18.0, the Workspace Save API accepts a controlled workspace identifier from any authenticated user without enforcing workspace ownership, allowing modification of another user's private workspace and persistent script injection. This issue is fixed in version 16.18.0. |
|
| CVE-2026-13227 | Aug 04, 2026 |
ERPNext Improper Authorization in Prospect.get_opportunities API <15.115 & <16.26An Improper Authorization vulnerability exists in ERPNext version <v16.25.0 and <15.115.0 due to insufficient access control in the whitelisted API method erpnext.crm.doctype.prospect.prospect.get_opportunities. This issue affects ERPNext: before 15.115.0, before 16.26.0. |
|
| CVE-2026-12895 | Jul 29, 2026 |
SQLi in ERPNext 15.107.0 via str.format() Auth Low Priv Exec SQLSQL injection in Frappe's ERPNext, versions ERPNext 15.107.0 and Frappe 15.107.2. The application constructs SQL queries through direct string interpolation using `str.format()` without employing parameterized queries, allowing the name (docname) of a Supplier record containing SQL metacharacters to be interpreted as part of the query. Exploitation of this vulnerability could allow an authenticated user with low privileges to execute arbitrary SQL queries, bypass Frappes access restrictions (DocPerm), extract confidential information from the databaseincluding fragments of the administrators password hashand access other sensitive data, such as credentials, integration tokens, or financial information. |
|
| CVE-2026-39385 | Jul 20, 2026 |
Frappe LMS 2.51 & <2.51 Bypass Payment Validation via Unrelated BatchFrappe LMS is an open source learning management system. In version 2.51.0 and earlier, a user could bypass payment validation for courses by using unrelated batch. This has been patched in 2.52.0 with enrollment now validating that the batch is linked to course. |
|
| CVE-2026-55242 | Jul 15, 2026 |
ERPNext SSTI via Config Field <15.111.0 and <16.22.0ERPNext is a free and open source Enterprise Resource Planning tool. Prior to 15.111.0 and 16.22.0, an authenticated user with a standard operational role can trigger server-side template injection through a configuration field, resulting in unauthorized disclosure of data outside the user's normal permission scope. This issue is fixed in versions 15.111.0 and 16.22.0. |
|
| CVE-2026-55852 | Jul 10, 2026 |
TarSlip RCE in Frappe <16.23.0 via Package ImportFrappe is a full-stack web application framework. Prior to 16.23.0 and 15.112.0, TarSlip RCE was possible in Package Import because tarfile members were not sufficiently checked before extraction. This issue is fixed in versions 16.23.0 and 15.112.0. |
|
| CVE-2026-42219 | Jul 10, 2026 |
Frappe Path Traversal via download_backups pre-16.19.0 / 15.109.0Frappe is a full-stack web application framework. Prior to 16.19.0 and 15.109.0, path traversal via download_backups was possible due to lack of hardening. This issue is fixed in versions 16.19.0 and 15.109.0. |
|
| CVE-2026-49394 | Jul 10, 2026 |
Frappe <16.19.0 Auth Bypass via update_page endpoint in WorkspaceFrappe is a full-stack web application framework. Prior to 16.19.0, authorization bypass was possible via the update_page endpoint in Workspace because public workspaces did not receive the required Workspace Manager edit check. This issue is fixed in version 16.19.0. |
|
| CVE-2026-48127 | Jul 10, 2026 |
Frappe Unauthorized File Attachments via API < 16.20.0/15.110.0Frappe is a full-stack web application framework. Prior to 16.20.0 and 15.110.0, users without write access could attach files to any doctype through file-handling API endpoints such as add_attachments. This issue is fixed in versions 16.20.0 and 15.110.0. |
|
| CVE-2026-41482 | Jul 10, 2026 |
Frappe Path Traversal & LFI in Chrome PDF Gen (16.18.2)Frappe is a full-stack web application framework. Prior to 16.18.3, possible path traversal and local file inclusion were possible through secure local resource access in the Chrome PDF Generator. This issue is fixed in version 16.18.3. |
|
| CVE-2026-47199 | Jul 10, 2026 |
Frappe SQL Outfile vuln before 16.18.3/15.108.0Frappe is a full-stack web application framework. Prior to 16.18.3 and 15.108.0, check_safe_sql_query permitted SELECT INTO OUTFILE queries, which could potentially work on self-hosted sites if database permissions are not well aligned and MySQL FILE privileges are available. This issue is fixed in versions 16.18.3 and 15.108.0. |
|
| CVE-2026-58503 | Jul 10, 2026 |
User Enumeration via reset_password in Frappe <16.16.0/15.106.0Frappe is a full-stack web application framework. Prior to 16.16.0 and 15.106.0, user enumeration could be performed via the reset_password endpoint. This issue is fixed in versions 16.16.0 and 15.106.0. |
|
| CVE-2026-47422 | Jul 10, 2026 |
Frappe Reportview Permission Bypass before v15.107.5 / v16.18.2Frappe is a full-stack web application framework. Prior to 15.107.5 and 16.18.2, an endpoint in reportview lacked appropriate permission checks and that has since been fixed. This vulnerability is fixed in 15.107.5 and 16.18.2. |
|
| CVE-2026-50712 | Jun 24, 2026 |
Frappe Framework 17.0.0-dev: XSS in frappe.ui.Tree ComponentA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the frappe.ui.Tree component |
|
| CVE-2026-50711 | Jun 24, 2026 |
Stored XSS in Frappe Framework 17.0.0-dev Number CardA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the Number Card component. |
|
| CVE-2026-50710 | Jun 24, 2026 |
Stored XSS in Frappe Framework 17.0.0-dev Number Card evalA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to unsafe evaluation of user-controlled data in the Number Card component. |
|
| CVE-2026-50709 | Jun 24, 2026 |
Stored XSS in Frappe Framework 17.0.0-dev Notifications Events PanelA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the Notifications > Events panel. |
|
| CVE-2026-50708 | Jun 24, 2026 |
Stored XSS in MultiSelectDialog of Frappe Framework 17.0.0-devA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the MultiSelectDialog component. |
|
| CVE-2026-50705 | Jun 24, 2026 |
Frappe Framework 17.0.0-dev XSS via Form Dashboard headline rendererA Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of untrusted input in the Form Dashboard headline renderer. |
|
| CVE-2026-50704 | Jun 24, 2026 |
Stored XSS in Frappe 17.0-dev Breadcrumb RendererA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the File View breadcrumb renderer. |
|
| CVE-2026-50703 | Jun 24, 2026 |
Stored XSS in Frappe Framework 17.0.0-dev Desk Icon RendererA Stored Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the Desk desktop icon renderer. |
|
| CVE-2026-50701 | Jun 24, 2026 |
R-XSS in Frappe Framework 17.0.0-dev via dashboard-viewA Reflected Cross-Site Scripting (XSS) vulnerability exists in Frappe Framework version 17.0.0-dev due to improper neutralization of user-controlled input in the dashboard-view component. |
|