Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable import feature (AV:N/AC:L/UI:N) but requires admin-level import rights (PR:H); arbitrary file write yields full C/I/A on the host with no scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Frappe 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.
AnalysisAI
Arbitrary file write leading to remote code execution in the Frappe framework (versions prior to 15.112.0 and 16.23.0) allows a privileged user to abuse the Package Import feature, where tarfile members are extracted without adequate path validation (a TarSlip / path-traversal flaw, CWE-22). An attacker who can upload a crafted package tarball can write files outside the intended extraction directory to overwrite application files and achieve code execution as the Frappe service account. No public exploit identified at time of analysis, and the flaw is not listed in CISA KEV; the CVSS 4.0 base score is 8.6, reflecting high impact gated by a high-privilege prerequisite.
Technical ContextAI
Frappe is a Python full-stack web application framework and the foundation for ERPNext and many business applications. The vulnerability lives in the Package Import functionality, which unpacks user-supplied tar archives. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) here manifests as a classic 'TarSlip': when Python's tarfile module extracts members, entries may contain '../' sequences or absolute paths in their member names, and Frappe did not sufficiently sanitize these names against the extraction root before writing them. As a result, a malicious member can traverse outside the target directory and land on an arbitrary filesystem location (e.g. a Python module, hook, or config file that later gets executed), converting a file-write primitive into remote code execution. The affected component is identified by CPE cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:*.
RemediationAI
Vendor-released patch: upgrade to Frappe 15.112.0 (15.x line) or 16.23.0 (16.x line), which add proper validation of tar member paths before extraction; ERPNext and other Frappe-based apps should be updated to bundle a fixed framework version. The fixes are delivered through pull requests https://github.com/frappe/frappe/pull/38716, /40044 and /40045 and commits 3c75f13f, 4772e3e7 and 57e527d9, per advisory GHSA-58w2-4cjg-hvp6. If immediate patching is not possible, restrict who holds the roles/permissions needed to invoke Package Import (limit System Manager and package-import rights to a minimal set of fully trusted operators), and treat package import as a privileged administrative action gated behind change control; the trade-off is reduced self-service for legitimate admins. As a further compensating control, avoid importing packages from untrusted or externally-sourced tarballs and inspect archive member paths before import - but note manual inspection is error-prone and is not a substitute for the patch.
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
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
In Frappe ERPNext 15.57.5, the function get_blanket_orders() at erpnext/controllers/queries.py is vulnerable to SQL Inje
In Frappe ERPNext 15.57.5, the function get_material_requests_based_on_supplier() at erpnext/stock/doctype/material_requ
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43107