Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Frappe as low-privileged user
-
DeliveryInject crafted references into PDF-rendered content
-
Exploitpdfkit resolves internal URL or local file path
-
ExecutionServer fetches internal resource or embeds local file
-
ImpactRetrieve generated PDF to exfiltrate data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Frappe account (PR:L) with access to a feature that renders user-controllable content to PDF via the pdfkit library (e.g., print formats, templates, or report-to-PDF flows). The attacker must be able to inject crafted markup/URLs or file references that pdfkit resolves server-side. Exploitation is limited by: mandatory authentication, the need for reachable PDF-generation functionality, and dependence on the vulnerable pdfkit version shipped in Frappe 15.x before 15.107.3 and 16.x before 16.17.0; patched versions remove the condition. No special non-default product configuration is documented as required beyond use of PDF generation. |
| Impact | This is a medium-severity, low-priority issue for most deployments. The vendor CVSS 4.0 base score is 4.8, driven by PR:L (authentication required), limited integrity/availability sub-impacts, and - notably - AV:L (local attack vector) with VC:N (no confidentiality impact). These metrics partially conflict with the vulnerability class: CWE-918 SSRF plus local file inclusion against a web framework would normally imply a network-reachable vector (AV:N) and a real confidentiality impact (embedding local server files into a returned PDF discloses data). The vendor's AV:L and VC:N therefore look conservative or possibly mislabeled - verify the intended vector with Frappe/VulnCheck, as a network-reachable rating would raise the practical score. No EPSS score, no CISA KEV listing, and no public exploit were provided, so there is no public exploit identified at the time of analysis and no evidence of active exploitation. Combined with the authentication requirement, real-world risk is constrained to environments where attackers already hold valid low-privileged Frappe accounts and can reach PDF-generation features; this is a defense-in-depth / patch-in-normal-cycle item rather than an emergency. |
| Exploit ScenarioDerived | An authenticated low-privileged Frappe user crafts content (e.g., a print format or template rendered to PDF) containing references that the vulnerable pdfkit library resolves server-side, causing the server to fetch internal-only URLs (SSRF) or embed local server files into the generated PDF (LFI), which the attacker then downloads. No public proof-of-concept was provided, though the issue derives from the known upstream flaw CVE-2025-26240 in pdfkit. Exploitation requires valid credentials and access to a PDF-rendering feature, limiting opportunistic abuse. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Server-side request forgery and local file inclusion in Frappe Framework 15.x before 15.107.3 and 16.x before 16.17.0 allow an authenticated user who can render user-controllable content to PDF to make the server fetch internal resources or embed local server files into the resulting PDF. The root cause is Frappe's dependency on a vulnerable version of the pdfkit library (CVE-2025-26240), which resolves external URLs and file references during server-side PDF rendering. The assessed vector is network-accessible but requires a valid Frappe account with access to a PDF-generating feature (print formats, templates, or report-to-PDF flows), and impact is limited to confidentiality; it is a medium-severity, low-priority issue for most deployments, and no public exploit was identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade Frappe Framework to 15.107.3 (15.x line) or 16.17.0 (16.x line), which ship a remediated pdfkit dependency and remove the vulnerable PDF rendering path; confirm the upgrade by checking that the installed pdfkit version is no longer in the CVE-2025-26240 range, and see GHSA-pj59-9hv9-rmrv (https://github.com/frappe/frappe/security/advisories/GHSA-pj59-9hv9-rmrv) and the VulnCheck advisory (https://www.vulncheck.com/advisories/frappe-framework-before-16.17.0-authenticated-ssrf-and-lfi-via-pdfkit) for the vendor's instructions. If upgrading cannot be done immediately, the highest-value compensating control is to tighten who can trigger PDF rendering: restrict print-format, template, and report-to-PDF privileges to trusted roles only, and remove or disable custom print formats and Jinja/HTML templates that accept user-supplied URLs or file references - the trade-off is reduced self-service reporting for normal users. Second, apply egress and file-read restrictions on the Frappe application and worker hosts: block outbound requests to link-local metadata addresses (169.254.169.254) and RFC1918/internal management ranges, and, where PDF output must embed remote assets, allow only an explicit allow-list of trusted hosts - note that broad egress blocking will break legitimate PDF templates that pull remote images, fonts, or CSS. Third, run PDF generation under a constrained OS user or container with a read-only filesystem and no access to secrets, configuration, or other tenants' files, which limits what an LFI can exfiltrate at the cost of some operational complexity. Finally, log and alert on PDF-generation requests whose templates reference non-public hosts or file:// style paths, so attempted SSRF/LFI is detectable even before patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Frappe Framework renders HTML documents to PDF through the Python pdfkit library, which in turn drives wkhtmltopdf/WKHTMLTOPDF-style headless rendering engines. In the affected pdfkit versions (tracked as CVE-2025-26240), markup supplied to the renderer can cause the server to dereference attacker-controlled URLs and local file references, so HTML-to-PDF conversion becomes an outbound request and file-read primitive. This is a classic CWE-918 (Server-Side Request Forgery) pattern: the application fails to validate or restrict the resources that a downstream component fetches on its behalf. Because the vulnerable component executes with the privileges of the Frappe web/worker process, internal-only endpoints, cloud metadata services, and readable files on the application host can be reached and reflected into the PDF output, which the attacker then downloads. The affected component is the Frappe framework itself (CPE cpe:2.3:a:frappe:frappe:*:*:*:*:*:*:*:*), meaning every Frappe site pinned to the affected framework releases inherits the dependency. Independent assessment rates this CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N - scope change with limited confidentiality impact - which is more consistent with a remotely reachable, low-impact SSRF/LFI than the vendor's CVSS 4.0 vector, and the analysis here follows the independent assessment.
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
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:L
Web framework reached over network by an authenticated low-privileged user (AV:N/PR:L); SSRF crosses a trust boundary to internal systems (S:C) and LFI/internal fetch yields limited confidentiality disclosure (C:L).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Frappe Framework 15.x before 15.107.3 and 16.x before 16.17.0 relies on a vulnerable pdfkit library (CVE-2025-26240) for PDF generation, enabling server-side request forgery and local file inclusion. Authenticated attackers can supply crafted content to PDF rendering to make the server fetch internal resources or embed local server files in generated PDFs.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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
Authenticated SQL injection in Frappe ERPNext through 15.89.0 allows low-privilege users to extract arbitrary database c
SQL injection in Frappe ERPNext through 15.89.0 lets an authenticated attacker with a valid session and access to the Pa
Authenticated server-side template injection in Frappe ERPNext through 15.89.0 lets a user who can create or modify an A
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
EUVD-2026-98166
GHSA-8q9q-vqwh-rpm8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB