CVE Catalog

CVE-2026-85714

CriticalCVSS 9.1
Published: Translated: NVD NIST

Summary

In Stirling-PDF prior to 2.13.2, an authenticated administrator using the default H2 database and security mode can upload a crafted SQL file to POST /api/v1/database/import-database. DatabaseService.validateSqlContent() splits normalized input on semicolons and accepts a statement when it contains any allowed keyword, allowing dangerous H2 functions such as FILE_READ and CSVWRITE, plus CREATE ALIAS, to bypass the insufficient whitelist and execute side effects when RUNSCRIPT processes the file. This permits arbitrary file access. The demonstrated operating-system command execution chain writes attacker-controlled startup files to a user-site location and then triggers an application Python interpreter configured to load those startup files, resulting in command execution as the JVM service account.

Risk Assessment

The vulnerability allows an authenticated administrator to execute arbitrary code in the context of the JVM service account, potentially leading to full server compromise. This poses a critical risk to confidentiality, integrity, and availability.

Recommendation

Immediately update Stirling-PDF to version 2.13.2 or later. Until patched, restrict administrator privileges and monitor for unusual database import operations.

Other vulnerabilities in Stirling-PDF

See all
Original NVD description (English source)

Stirling-PDF is a locally hosted web application that facilitates various operations on PDF files. Prior to 2.13.2, an authenticated administrator using the default H2 database and security mode can upload a crafted SQL file to POST /api/v1/database/import-database. DatabaseService.validateSqlContent() splits normalized input on semicolons and accepts a statement when it contains any allowed keyword, allowing dangerous H2 functions such as FILE_READ and CSVWRITE, plus CREATE ALIAS, to bypass the insufficient whitelist and execute side effects when RUNSCRIPT processes the file. This permits arbitrary file access. The demonstrated operating-system command execution chain writes attacker-controlled startup files to a user-site location and then triggers an application Python interpreter configured to load those startup files, resulting in command execution as the JVM service account. This issue is fixed in version 2.13.2.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS