
Proof-of-concept exploit per CVE-2026-23745, una vulnerabilità di path traversal in node-tar che consente la sovrascrittura arbitraria di file tramite archivi tar dannosi.
Ricerca: Joshua van Rijswijk
PoC per CVE-2026-23745, una vulnerabilità di path traversal ad alta gravità in node-tar ( <7.5.2).
La libreria non riesce a sanificare i percorsi assoluti nel campo linkpath per Hardlink e Symlink. Ciò consente ad archivi tar dannosi di bypassare la directory di estrazione e sovrascrivere file arbitrari sul sistema host, anche quando è impostato preservePaths: false.
Situata in src/unpack.ts. La libreria utilizza path.resolve() su input utente non sanificati:
// Il bug: path.resolve ignora 'cwd' se il secondo argomento è assoluto
const target = path.resolve(this.cwd, String(entry.linkpath))
Se un attaccante fornisce un percorso assoluto (ad es., /etc/passwd) nell'header tar, node-tar lo risolve alla root di sistema invece che alla directory di estrazione.
Il file poc.js incluso genera un archivio dannoso e tenta di sovrascrivere un file locale secret.txt.
Installare la versione vulnerabile:
npm install [email protected]
Eseguire il generatore di exploit:
node poc.js
Output:
[+] VULN CONFIRMED: Hardlink overwrite successful
Target file content changed to: OVERWRITTEN
Corretto nella v7.5.3. L'aggiornamento aggiunge stripAbsolutePath() per sanificare i target dei link prima della risoluzione.
Riferimenti: