Skip to main content

Frappe Framework CVE-2026-109603

| EUVDEUVD-2026-98166 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-12 VulnCheck GHSA-8q9q-vqwh-rpm8
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Frappe as low-privileged user
  2. Delivery
    Inject crafted references into PDF-rendered content
  3. Exploit
    pdfkit resolves internal URL or local file path
  4. Execution
    Server fetches internal resource or embeds local file
  5. Impact
    Retrieve 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

frappe 16.0.0-beta.1 <16.17.0
frappe 0 <15.107.3

Affected Packages

euvd frappe fix: 15.107.3, 16.17.0

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

Vendor (VulnCheck) PRIMARY 4.8 MEDIUM
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
vuln.today AI 5.0 MEDIUM

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).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
Low

Lifecycle Timeline

1
Patch available
Oct 13, 2026 - 02:16 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
popular open-source low-code/ERP framework (basis of ERPNext), common but not ubiquitous
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

More in Frappe

View all
CVE-2025-67289 CRITICAL POC
9.6 Dec 22

Stored cross-site scripting leading to code execution in Frappe Framework 15.89.0 (and the ERPNext application built on

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

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