CVE-2026-85714
Beschrijving NL
Stirling-PDF is een lokaal gehoste webapplicatie die verschillende bewerkingen op PDF-bestanden mogelijk maakt. Voorafgaand aan 2.13.2 kan een geverifieerde beheerder met behulp van de standaard H2-database en beveiligingsmodus een vervaardigd SQL-bestand uploaden naar POST /api/v1/database/import-database. DatabaseService.validateSqlContent() splitst genormaliseerde invoer op puntkomma's en accepteert een verklaring wanneer deze een toegestaan trefwoord bevat, waardoor gevaarlijke H2-functies zoals FILE_READ en CSVWRITE, plus het MAKEN van een ALIAS, de onvoldoende whitelist kunnen omzeilen en bijwerkingen kunnen uitvoeren wanneer RUNSCRIPT het bestand verwerkt. Dit maakt willekeurige bestandstoegang mogelijk. De gedemonstreerde commando-uitvoerketen van het besturingssysteem schrijft door aanvallers gecontroleerde opstartbestanden naar een gebruikerslocatie en activeert vervolgens een applicatie Python-interpreter die is geconfigureerd om die opstartbestanden te laden, wat resulteert in de uitvoering van opdrachten als het JVM-serviceaccount. Dit probleem is opgelost in versie 2.13.2.
Origineel (Engels) tonen
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.