.. _vulnerabilityManagement_skip_registry_34x_CVE-2026-23907: CVE-2026-23907, CVE-2026-33929 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Data: 2025-03-27 Severity: Medium CVSS Score: 5.3 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) Riferimenti: - `https://nvd.nist.gov/vuln/detail/CVE-2026-23907 `_ - `https://nvd.nist.gov/vuln/detail/CVE-2026-33929 `_ Libreria: org.apache.pdfbox:\* **Descrizione** - *CVE-2026-23907*: This issue affects the ExtractEmbeddedFiles example in Apache PDFBox: from 2.0.24 through 2.0.35, from 3.0.0 through 3.0.6. The ExtractEmbeddedFiles example contains a path traversal vulnerability (CWE-22) because the filename that is obtained from PDComplexFileSpecification.getFilename() is appended to the extraction path. Users who have copied this example into their production code should review it to ensure that the extraction path is acceptable. The example has been changed accordingly, now the initial path and the extraction paths are converted into canonical paths and it is verified that extraction path contains the initial path. The documentation has also been adjusted. - *CVE-2026-33929*: 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** Entrambe le vulnerabilità riguardano esclusivamente il codice di esempio ``ExtractEmbeddedFiles`` distribuito nell'artifact separato ``pdfbox-examples``, **non incluso** nei jar ``pdfbox`` / ``pdfbox-io`` impiegati nel deploy di GovWay. La classe ``ExtractEmbeddedFiles`` non è quindi nemmeno presente fisicamente nei jar segnalati dallo scanner (verifica diretta effettuata sui jar ``pdfbox`` / ``pdfbox-io`` utilizzati 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`` 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 le vulnerabilità non sono sfruttabili nel contesto di GovWay. Configuration File: `false-positive.xml `_