CVE-2026-85714
9.1CriticalPublished 14 Oct 2026 · NVD status: Awaiting Analysis · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- High
- User interaction
- None
- Impact
- Full C/I/A compromise
- Weakness
- CWE-94
Impact
Authenticated administrators can execute arbitrary OS commands as the JVM service account and read arbitrary files on the server. They need an admin account and an instance running the default H2 database and security mode.
Root cause
DatabaseService.validateSqlContent() uses a flawed semicolon-delimited keyword whitelist that lets malicious H2 functions and aliases slip through during SQL imports.
Affected systems
Stirling-PDF versions prior to 2.13.2
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Fix & remediation
Upgrade Stirling-PDF to version 2.13.2 or later. If upgrading immediately is not possible, restrict access to the POST /api/v1/database/import-database endpoint at your reverse proxy.
$ docker pull frooodle/s-pdf:2.13.2AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
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.
References
- https://github.com/Stirling-Tools/Stirling-PDF/commit/d06d3cabaf5b8a7dcd0dbfc584828d8e687e5dd5
- https://github.com/Stirling-Tools/Stirling-PDF/pull/6796
- https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.13.2
- https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-mrr8-934j-4g8m
- https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-mrr8-934j-4g8m