Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/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-accessible endpoint requiring only authenticated low-privilege access; no confidentiality impact, high integrity via unauthorized document restoration.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
4DescriptionCVE.org
Frappe 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.
AnalysisAI
Unauthorized document restoration in Frappe Framework exposes a missing authorization flaw where any authenticated user can invoke the restore and bulk_restore API endpoints to recover soft-deleted documents without possessing the required document-level permissions. Affected releases span all versions prior to 15.110.0 (v15 branch) and 16.20.0 (v16 branch). No public exploit or CISA KEV listing is present, but the low attack complexity and broad authenticated-user scope make this a credible insider or compromised-account threat with high integrity impact per the CVSS 4.0 signal.
Technical ContextAI
Frappe is a Python full-stack framework underpinning ERPNext and other open-source business applications. Its DocType system manages documents with soft-delete capabilities via the DeletedDocument doctype; the restore() and bulk_restore() functions in frappe/core/doctype/deleted_document/deleted_document.py are responsible for reversing these deletions. CWE-862 (Missing Authorization) is the root cause: the endpoints reconstruct and reinsert the original document into the database without first asserting that the calling user holds the appropriate permission role or document-owner rights over the target record type. The commit diff confirms the fix addressed metadata retention on restore (owner, creation, modified_by fields), while the paired commit (d5c5499c) is the primary permission-check remediation. The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L indicates the endpoints are network-accessible, require no special attack conditions, and only low-level authenticated access.
RemediationAI
Upgrade to Frappe Framework version 15.110.0 or later on the v15 branch, or version 16.20.0 or later on the v16 branch; these are the vendor-confirmed patched releases per the GitHub Security Advisory GHSA-cjjx-3v2x-37mf. The upstream fix is available across two commits: caa95f64f96ccf62f9f9fdfc03274527105cb44e and d5c5499c95953b0bb28f7b4907add01663bb8ca0, both targeting frappe/core/doctype/deleted_document/deleted_document.py. If an immediate upgrade is not feasible, restrict network-level access to the /api/method/frappe.core.doctype.deleted_document.* endpoints via reverse proxy ACLs so that only administrator-role sessions can reach them; this mitigation trades off self-service restore capability for all users against the authorization bypass risk. Additionally, audit recent restore activity in the DeletedDocument log table for anomalous restorations by non-admin accounts.
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54163