Skip to main content

Stirling-PDF CVE-2026-113605

| EUVDEUVD-2026-105083 HIGH
Incomplete List of Disallowed Inputs (CWE-184)
2026-10-20 VulnCheck GHSA-j8f5-2f4f-jm2m
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as administrator
  2. Exploit
    Upload crafted SQL backup to import-database
  3. Execution
    RUNSCRIPT registers H2 Java alias
  4. Impact
    Execute arbitrary Java code on host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation completeness
Exploitation Conditions

Requires an authenticated Stirling-PDF administrator account and access to the import-database endpoint on an affected version (2.13.2 through 3.2.0). The malicious input is a crafted SQL backup that uses CREATE OR REPLACE ALIAS plus RUNSCRIPT to define H2 Java function aliases, which the incomplete denylist in DatabaseService.validateSqlContent() fails to block, restoring Java-method execution. The principal limiting factor is the administrator privilege requirement (PR:H): the vulnerability is not reachable by anonymous or low-privileged users, so realistic risk is confined to compromised or abused admin credentials and malicious administrators on shared/multi-tenant instances. No victim user interaction is required (UI:N).

Impact

The CVSS 4.0 base score of 8.6 looks severe, but the single most important mitigating signal is PR:H - exploitation requires an already-authenticated administrator. This is therefore not a remote-unauthenticated compromise but an escalation/control-bypass: an admin (or an attacker who has stolen admin credentials) turns web-admin access into arbitrary Java code execution on the host by defeating the H2 import denylist (CWE-184, incomplete denylist). AV:N/AC:L/UI:N mean that once admin access exists the final step is easy and reliable, and a public POC plus a VulnCheck advisory confirm the technique is real and reproducible. No CISA KEV listing and no EPSS score were provided in the input, so there is no evidence of active or widespread exploitation and no modeled exploitation probability to weigh. Net assessment: a genuine high-impact issue for anyone who treats the Stirling-PDF admin boundary as a security boundary (it effectively becomes RCE-equivalent), but lower real-world urgency than an unauthenticated flaw because the admin prerequisite is a substantial gate. Missing data to note explicitly: EPSS and KEV status were not supplied, and no fixed version is stated in the input.

Exploit ScenarioDerived

An attacker who has obtained Stirling-PDF administrator access (via stolen/weak credentials, a shared instance, or a malicious insider) crafts a SQL backup file that uses CREATE OR REPLACE ALIAS together with RUNSCRIPT to register an H2 Java function alias. They upload it to the import-database endpoint, and on import the alias restores Java-method execution, yielding arbitrary code execution on the host. A public proof-of-concept for this denylist bypass is available.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) No patch listed yet 0.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Stirling-PDF 2.13.2 through 3.2.0 lets an authenticated administrator regain Java method execution by uploading a crafted SQL backup to the import-database endpoint. The incomplete denylist in DatabaseService.validateSqlContent() does not block CREATE OR REPLACE ALIAS statements, so a RUNSCRIPT payload can define H2 Java function aliases and re-enable the code-execution path the import restrictions were meant to close (CWE-184). Publicly available exploit code exists, including a proof-of-concept repository and accompanying research writeups; there is no CISA KEV listing, and the decisive mitigating factor is the PR:H administrator prerequisite, which confines realistic risk to compromised or malicious admin accounts and to shared or multi-tenant instances where an administrator is not fully trusted.

RemediationAI

No vendor-released patch is identified in the available data: the only upstream reference supplied points at the v3.2.0 source tree, which is inside the affected range, so upgrading cannot be assumed to remediate until the vendor publishes a fixed release and advisory - track the Stirling-Tools repository and the VulnCheck advisory (https://www.vulncheck.com/advisories/stirling-pdf-2.13.2-through-3.2.0-h2-sql-denylist-bypass-via-import-database) for a confirmed fix version before relying on a version bump. Until then, the highest-value control is to remove or disable the database import/restore capability where backup migration is not an operational requirement, accepting that legitimate restore workflows must then be performed out-of-band against the H2 file; where the feature must stay enabled, restrict the import-database endpoint at the reverse proxy or network layer to a named set of administrative source addresses and require re-authentication for that path, with the trade-off that roaming administrators lose direct access. Reduce the PR:H exposure that drives the real risk by enforcing SSO/MFA on administrator accounts, eliminating shared admin logins, and auditing the administrator roster, since any admin credential compromise converts this into straightforward Java code execution. Add pre-ingest inspection of uploaded backups for CREATE [OR REPLACE] ALIAS, RUNSCRIPT, and other Java-binding constructs and reject review bypasses, understanding this is another denylist of the same class that failed here. Run the container as a non-root user with a read-only root filesystem, dropped Linux capabilities, and restricted egress so that post-exploitation Java execution cannot easily reach internal services or the network, accepting possible breakage of features that legitimately shell out. Finally, review H2 logs and application audit trails for unexpected alias creation or script execution following any administrator session, and rotate administrator credentials and API keys if suspicious imports are found.

Affected VersionsENISA

Stirling-PDF 2.13.2 ≤3.2.0

Affected Packages

euvd stirling_pdf no fix

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

Stirling-PDF is a self-hosted Java web application that uses the H2 embedded database and exposes a database backup/restore workflow in which an administrator uploads a SQL dump that the server replays. H2's SQL dialect supports CREATE ALIAS / CREATE OR REPLACE ALIAS, which binds a SQL function name to an arbitrary Java method (or inline Java source where a compiler is available), and RUNSCRIPT, which executes a SQL script. Combined, these give an attacker who controls the uploaded script a way to instantiate Java-backed functions and invoke them, i.e. arbitrary Java method execution in the context of the Stirling-PDF process. CWE-184 (Incomplete List of Disallowed Inputs) is the root cause: DatabaseService.validateSqlContent() applies a denylist of forbidden SQL constructs but omits the ALIAS form, so a signature-based filter is bypassed rather than a memory-safety or authentication flaw being exploited. The affected CPE is a wildcard (cpe:2.3:a:stirling-tools:stirling-pdf:*:*:*:*:*:*:*:*), with the vulnerable version window established by the vendor source at tag v3.2.0 and the reporting vendor's range of 2.13.2 through 3.2.0; the assessed vector is CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, i.e. network-reachable, no user interaction, but gated behind high privileges. This is a post-authentication hardening failure rather than a pre-auth entry point.

Know when Java 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 8.6 HIGH
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
vuln.today AI 7.2 HIGH

Network-reachable admin endpoint with low complexity, but exploitation requires administrator privileges (PR:H); resulting Java-method execution yields full confidentiality, integrity and availability impact on the host.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Stirling-PDF from 2.13.2 through 3.2.0 contains an incomplete denylist in DatabaseService.validateSqlContent() that allows administrators to bypass H2 import restrictions using CREATE OR REPLACE ALIAS. Authenticated administrators can upload a crafted SQL backup to the import-database endpoint, where RUNSCRIPT defines H2 Java function aliases and restores Java-method execution.

Technical POC Analysis

Evidence note: the supplied source is the public PoC repository abraxas/stirling-h2-import-leftover (README plus a stated Python client and lab/run.sh).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

Stirling-PDF versions 2.13.2 through 3.2.0 contain a database-import flaw that lets an administrator-level user regain Java code execution, with the greatest organizational concern in shared, multi-tenant, or delegated-admin deployments where administrator trust is not absolute. Exploitation status is that publicly available exploit code exists, there is no CISA KEV listing, and no vendor-released patch identified at time of analysis, so risk depends on admin governance and exposure of the import function. Leadership should prioritize inventory, admin-account review, and containment because a malicious or compromised admin could affect data integrity and tenant isolation.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Restrict the import-database endpoint to trusted administrators; disable or block the endpoint at the reverse proxy or WAF; enforce least privilege and separation of duties for Stirling-PDF admins; monitor uploaded SQL for CREATE OR REPLACE ALIAS and RUNSCRIPT; isolate multi-tenant instances; review administrator accounts and logs for suspicious database-import activity.

Threat Intelligence Overview

EPSS Score
0.7%
Top 49% exploitable
Prevalence
Medium
popular self-hosted open-source PDF tool, moderate production footprint
Data Quality
5 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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.7%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +43
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

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