
Proof-of-Concept-Exploit für CVE-2026-23745, eine Path-Traversal-Schwachstelle in node-tar, die das Überschreiben beliebiger Dateien über bösartige Tar-Archive ermöglicht.
Forschung: Joshua van Rijswijk
PoC für CVE-2026-23745, eine Path-Traversal-Schwachstelle mit hohem Schweregrad in node-tar ( <7.5.2).
Die Bibliothek versäumt es, absolute Pfade im linkpath-Feld für Hardlinks und Symlinks zu bereinigen. Dadurch können bösartige Tar-Archive das Extraktionsverzeichnis umgehen und beliebige Dateien auf dem Host-System überschreiben, selbst wenn preservePaths: false gesetzt ist.
Befindet sich in src/unpack.ts. Die Bibliothek verwendet path.resolve() auf nicht bereinigten Benutzereingaben:
// Der Fehler: path.resolve ignoriert 'cwd', wenn das zweite Argument absolut ist
const target = path.resolve(this.cwd, String(entry.linkpath))
Wenn ein Angreifer einen absoluten Pfad (z. B. /etc/passwd) im Tar-Header bereitstellt, löst node-tar diesen zum Systemstammverzeichnis auf, anstatt zum Extraktionsverzeichnis.
Das enthaltene poc.js erzeugt ein bösartiges Archiv und versucht, eine lokale secret.txt-Datei zu überschreiben.
Verwundbare Version installieren:
npm install [email protected]
Exploit-Generator ausführen:
node poc.js
Ausgabe:
[+] VULN CONFIRMED: Hardlink overwrite successful
Target file content changed to: OVERWRITTEN
Behoben in v7.5.3. Das Update fügt stripAbsolutePath() hinzu, um Link-Ziele vor der Auflösung zu bereinigen.
Referenzen: