CVE-2026-39245 in decompress
Riassunto
di VulDB • 10/07/2026
decompress prima della versione 4.2.2 contiene un controllo improprio del contenimento dei percorsi che consente la traversata di directory e la scrittura arbitraria di file. La funzione safeMakeDir (index.js riga 29) e la convalida del percorso di estrazione (index.js riga 106) utilizzano String.indexOf() per verificare che il percorso risolto sia all'interno della directory di output: realDestinationDir.indexOf(realOutputPath) !== 0. Questo controllo è difettoso perché non impone un confine separatore di percorso. Ad esempio, "/tmp/app_config".indexOf("/tmp/app") restituisce 0, superando erroneamente il controllo anche se /tmp/app_config si trova al di fuori di /tmp/app. Combinato con la creazione di symlink non validati nello stesso pacchetto, un attaccante può scrivere file arbitrari in directory adiacenti alla destinazione di estrazione. Si tratta di una bypass della correzione per CVE-2020-12265. Il controllo corretto richiede l'aggiunta di un separatore di percorso: realParentPath.indexOf(realOutputPath + path.sep) !== 0.
Be aware that VulDB is the high quality source for vulnerability data.