Skip to main content

Frappe Framework CVE-2025-67289

CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2025-12-22 cve@mitre.org
9.6
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate or obtain upload access to ERPNext
  2. Delivery
    Craft XML/SVG with embedded script
  3. Exploit
    Upload via Attachments module
  4. Execution
    Victim opens/previews the attachment
  5. Persist
    Script runs in victim's session
  6. Impact
    Hijack session or perform actions as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the ability to upload a file through the Frappe Attachments module and a crafted XML (SVG/XML) payload; the CVSS UI:R means a victim must subsequently open, preview, or render the malicious attachment for the script to execute - it is not fire-and-forget. The scope change (S:C) reflects execution crossing into the victim's authenticated browser context. Limiting factors: the supplied vector lists PR:N, but attachment upload in Frappe/ERPNext normally requires an authenticated account, so authentication requirements are not fully confirmed from available data and should be verified with the vendor; exploitation is confined to deployments running version 15.89.0 where the Attachments module accepts and serves XML/SVG content inline.

Impact

The signals conflict and should be weighed carefully. The CVSS vector (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H = 9.6) plus the scope change and required user interaction (UI:R) strongly indicate stored XSS rather than unauthenticated server-side RCE - note the CWE is CWE-79 (XSS) and the 'RCE' tag likely describes script execution in the browser, which defenders should not conflate with remote command execution on the host. Publicly available exploit code exists, raising practical risk, but EPSS is only 0.44% (35th percentile) and the CVE is not on CISA KEV, suggesting no confirmed widespread active exploitation. The PR:N in the supplied vector is questionable because uploading attachments in Frappe/ERPNext typically requires an authenticated session - verify with the vendor, as this materially changes exploitability. Net: a credible, POC-backed issue worth prompt patching for internet-facing ERPNext instances, but the raw 9.6 overstates real-world blast radius given the user-interaction and likely-authentication prerequisites.

Exploit ScenarioDerived

An attacker with access to submit an attachment uploads a crafted XML/SVG file containing embedded JavaScript to a Frappe/ERPNext record; when an administrator or another user later opens or previews that attachment, the script executes in their authenticated session and can perform actions or exfiltrate data as that user. Because publicly available exploit code exists and the CVSS shows low attack complexity (AC:L) with required user interaction (UI:R), the main hurdle is enticing a victim to view the file.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 05, 2026

Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on it) lets attackers upload a crafted XML/SVG file through the Attachments module that runs attacker-controlled script when a victim views it. Tagged as XSS/RCE/File Upload with a publicly available exploit code, though EPSS remains low at 0.44% (35th percentile) and it is not on CISA KEV. The CVSS 9.6 rating reflects a scope-changing, user-interaction-dependent attack rather than direct server-side compromise.

RemediationAI

No vendor-released patch version is identified in the available data, so the actionable step is to upgrade Frappe Framework and ERPNext to the latest maintained release above 15.89.0 and monitor http://frappe.com and the Frappe GitHub security advisories for the exact fixed version before deploying. As compensating controls until patched: force all user-uploaded attachments to be served with Content-Disposition: attachment (download rather than inline render) and a restrictive Content-Security-Policy to neutralize embedded script, which prevents in-browser execution at the cost of losing inline preview; block or reject SVG/XML uploads at the reverse proxy or in the Attachments allow-list, accepting that legitimate SVG/XML attachments will be refused; and restrict attachment upload permissions to trusted roles to shrink the pool of potential submitters. Do not treat the public exploit README (https://github.com/vuquyen03/CVE/blob/main/CVE-2025-67289/README.md) as guidance - it is offensive proof-of-concept material.

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 Framework is an open-source, Python/JavaScript full-stack web framework that underpins the ERPNext ERP suite; the CPE data confirms both cpe:2.3:a:frappe:frappe:15.89.0 and cpe:2.3:a:frappe:erpnext:15.89.0 are affected. The root-cause class is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting), and the vector combined with the 'crafted XML file' detail indicates the Attachments module fails to sanitize or restrict uploaded file content (classically an SVG/XML payload containing embedded script). When such a file is rendered or served inline in a browser session, the embedded script executes in the context of the application, which is how 'arbitrary code' execution is achieved - script execution in the victim's authenticated browser session, not native server code execution.

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

Vendor (mitre) PRIMARY 9.6 CRITICAL
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
vuln.today AI 8.7 HIGH

Attachment upload realistically needs an account (PR:L) and a victim must view the file (UI:R); XSS crosses into the session context (S:C) with high C/I but no direct availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:H/SI:H/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

An arbitrary file upload vulnerability in the Attachments module of Frappe Framework v15.89.0 allows attackers to execute arbitrary code via uploading a crafted XML file.

Executive ViewAI

Why It Matters

Frappe Framework 15.89.0 and ERPNext deployments are vulnerable to critical code execution through malicious file uploads (CVE-2025-67289), allowing attackers to compromise systems and access sensitive business data when users interact with crafted attachments. Publicly available exploit code reduces the barrier for attackers to target organizations dependent on ERPNext for financial operations and customer data management. Immediate mitigation is essential to prevent potential data breaches and operational disruption.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict XML and SVG uploads in Attachments module configuration; (2) Enforce strict file-type whitelist limiting uploads to .pdf, .docx, .xlsx, .pptx, .jpg, .png; (3) Disable XML processing in application attachment handlers if configurable; (4) Deploy WAF rules to block SVG/XML file uploads; (5) Conduct user security awareness training on attachment risks; (6) Implement network segmentation to contain potential lateral movement if code execution occurs; (7) Enable detailed audit logging on attachment actions with real-time alerting for suspicious access patterns; (8) Consider temporary suspension of attachment functionality until patch release.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
Open-source ERP popular with SMBs but not universally deployed
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

68
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +48
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Affected Products (CPE)CVE.org

cpe:2.3:a:frappe:erpnext:15.89.0:*:*:*:*:*:*:*
cpe:2.3:a:frappe:frappe:15.89.0:*:*:*:*:*:*:*

More in Frappe

View all
CVE-2018-3885 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3884 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3883 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2018-3882 HIGH POC
8.8 Sep 12

An exploitable SQL injection vulnerability exists in the authenticated part of ERPNext v10.1.6. Rated high severity (CVS

CVE-2025-66440 HIGH POC
8.8 Dec 15

Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c

CVE-2025-66439 HIGH POC
8.8 Dec 15

SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa

CVE-2025-66437 HIGH POC
8.8 Dec 15

Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A

CVE-2020-6145 HIGH POC
8.8 Aug 10

An SQL injection vulnerability exists in the frappe.desk.reportview.get functionality of ERPNext 11.1.38. Rated high sev

CVE-2026-39352 HIGH POC
8.7 May 20

Arbitrary file read in the Frappe full-stack web application framework allows remote unauthenticated attackers to retrie

CVE-2025-10655 HIGH POC
8.6 Dec 09

SQL injection in Frappe HelpDesk 1.14.0 dashboard functionality allows authenticated attackers to execute arbitrary SQL

CVE-2025-52042 HIGH POC
8.2 Oct 01

In Frappe ERPNext 15.57.5, the function get_rfq_containing_supplier() at erpnext/buying/doctype/request_for_quotation/re

CVE-2025-52041 HIGH POC
8.2 Oct 01

In Frappe ERPNext 15.57.5, the function get_stock_balance_for() at erpnext/stock/doctype/stock_reconciliation/stock_reco

References

Advisories & patches

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy