---
id: CVE-2026-85714
title: >-
  Stirling-PDF is a locally hosted web application that facilitates various
  operations on PDF files
summary: >-
  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…
severity: critical
cvss: 9.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H'
cwe:
  - CWE-94
published: '2026-10-14'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T19:17:22.050'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-85714'
references:
  - url: >-
      https://github.com/Stirling-Tools/Stirling-PDF/commit/d06d3cabaf5b8a7dcd0dbfc584828d8e687e5dd5
    label: security-advisories@github.com
  - url: 'https://github.com/Stirling-Tools/Stirling-PDF/pull/6796'
    label: security-advisories@github.com
  - url: 'https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.13.2'
    label: security-advisories@github.com
  - url: >-
      https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-mrr8-934j-4g8m
    label: security-advisories@github.com
tags:
  - nvd
ingestedAt: '2026-10-14T19:49:57.616Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
