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.PDFWriter utilizza PDComplexFileSpecification / PDEmbeddedFile / PDEmbeddedFilesNameTreeNode solo in fase di scrittura, per aggiungere file embedded a PDF generati da GovWay (metodi addEmbeddedFile* / 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.PDFReader espone un’utility getEmbeddedFiles(boolean) che restituisce i file embedded come Map<String, EmbeddedFile> con i contenuti come byte[] 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 (nessun FileOutputStream / 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() (classe org.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 (classe org.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