CVE-2026-33929
Data: 2026-04-29
Severity: Medium
CVSS Score: 4.3 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N)
Riferimenti:
Libreria: org.apache.pdfbox:pdfbox
Descrizione
Path Traversal vulnerability in Apache PDFBox Examples. This issue affects the ExtractEmbeddedFiles example in Apache PDFBox: from 2.0.24 through 2.0.36, from 3.0.0 through 3.0.7. Si tratta di un follow-up della CVE-2026-23907: il fix applicato nelle release 2.0.36 e 3.0.7 è risultato incompleto perché non considera il file path separator, lasciando aperto lo stesso vettore di path traversal sull’esempio “ExtractEmbeddedFiles”. Gli utenti che avessero copiato il codice di esempio nella propria codebase di produzione devono applicare il fix aggiornato disponibile nella PR #427 del progetto Apache PDFBox (oppure aggiornare alle versioni 2.0.37 / 3.0.8 una volta rilasciate).
Falso Positivo per GovWay
La vulnerabilità riguarda esclusivamente il codice di esempio ExtractEmbeddedFiles distribuito nell’artifact separato pdfbox-examples, non incluso nel jar pdfbox impiegato nel deploy di GovWay. La classe ExtractEmbeddedFiles non è quindi nemmeno presente fisicamente nel jar segnalato dallo scanner (verifica diretta effettuata sul jar pdfbox utilizzato da GovWay). Inoltre il codice di esempio non è stato copiato nel sorgente GovWay.
Il vettore di attacco descritto dall’advisory richiede uno schema preciso: leggere PDComplexFileSpecification.getFilename() da un PDF non fidato e usare quel valore come path filesystem per scrivere il contenuto del file embedded. Tale schema non si verifica in nessun codepath di GovWay:
il modulo
org.openspcoop2.utils.pdf.PDFWriterutilizzaPDComplexFileSpecification/PDEmbeddedFile/PDEmbeddedFilesNameTreeNodesolo in fase di scrittura, per aggiungere file embedded a PDF generati da GovWay (metodiaddEmbeddedFile*/addEmbeddedFileAsKid*/addAnnotationFile*); il nome del file embedded è sempre fornito dal codice chiamante e non proviene da un PDF esterno;il modulo
org.openspcoop2.utils.pdf.PDFReaderespone un’utilitygetEmbeddedFiles(boolean)che restituisce i file embedded comeMap<String, EmbeddedFile>con i contenuti comebyte[]in memoria, senza alcuna scrittura su filesystem; viene utilizzato esclusivamente dai test unitari (org.openspcoop2.utils.pdf.test.PDFReaderTest) e non da codice di produzione del Gateway, e anche in tale ambito di test la mappa è verificata solo tramite asserzioni in memoria (nessunFileOutputStream/Files.write/new File(filename)costruito sul filename letto dal PDF).
In runtime di produzione, la libreria Apache PDFBox è quindi utilizzata in GovWay unicamente per:
caricare documenti PDF tramite
Loader.loadPDF()(classeorg.openspcoop2.utils.pdf.AbstractPDFCore);generare documenti PDF con contenuti testuali e tabellari (classe
org.openspcoop2.web.monitor.core.report.Templates);estrarre testo da documenti PDF tramite
PDFTextStripper(classeorg.openspcoop2.core.monitor.rs.testsuite.PdfUtils);aggiungere file embedded a PDF generati internamente (classe
org.openspcoop2.utils.pdf.PDFWriter), con filename controllati dal codice chiamante.
Il codepath vulnerabile descritto dall’advisory non è quindi raggiungibile e la vulnerabilità non è sfruttabile nel contesto di GovWay.
Configuration File: false-positive.xml