InSEKurity of the Week (CW03/2026): Node.js node-tar Path Traversal (CVE-2026-23745)
Kritische Path-Traversal-Schwachstelle in node-tar ermöglicht das Überschreiben beliebiger Dateien durch manipulierte Hardlinks und Symlinks in TAR-Archiven
Diese Woche in unserer InSEKurity of the Week Serie: Eine kritische Schwachstelle im weit verbreiteten Node.js-Package node-tar, die die gesamte JavaScript-Ökosystem betrifft.
🚨 Zusammenfassung
- CVE-ID: CVE-2026-23745
- EUVD-ID: EUVD-2026-2909
- CVSS 4.0 Score: 8.2 (High)
- CWE: CWE-22 (Path Traversal)
- GitHub Advisory: GHSA-8qq5-rm4j-mr97
- Betroffene Software: node-tar <= 7.5.2
- Angriffsvektor: Netzwerk (Unauthenticated Remote Attack)
- Authentifizierung erforderlich: Keine
- Auswirkung: Arbitrary File Overwrite, potenzielle Remote Code Execution
- Patch-Status: ✅ Verfügbar (Version 7.5.3)
- Veröffentlichung: 16. Januar 2026
📦 Was ist node-tar?
node-tar ist ein fundamentales npm-Package zum Extrahieren und Erstellen von TAR-Archiven in Node.js. Es wird von Millionen von Projekten weltweit verwendet und ist eine kritische Komponente in der JavaScript/Node.js-Infrastruktur. Das Package findet sich in Build-Pipelines, Package-Managern, Deployment-Tools und zahllosen Produktionsanwendungen.
Die massive Verbreitung macht diese Schwachstelle zu einem Supply-Chain-Risiko ersten Ranges.
🔍 Technische Analyse
Beschreibung der Schwachstelle
node-tar <= 7.5.2 versäumt es, die linkpath-Werte von Hardlinks und Symbolic Links in TAR-Archiven korrekt zu validieren, selbst wenn preservePaths auf false gesetzt ist (die sichere Standardeinstellung).
Ein Angreifer kann ein speziell präpariertes TAR-Archiv erstellen, das Hardlinks oder Symlinks mit absoluten Pfaden enthält (z.B. /etc/passwd, /root/.ssh/authorized_keys). Beim Extrahieren ignoriert node-tar das vorgesehene Zielverzeichnis und erstellt diese Links bzw. überschreibt die Zieldateien außerhalb des Extraction-Roots.
Ursachenanalyse
Das Problem liegt in der unzureichenden Validierung von Link-Targets:
- Fehlende Pfad-Normalisierung: Die Library prüft nicht, ob Link-Targets absolute Pfade enthalten
- Bypass der preservePaths-Sicherheit: Obwohl
preservePaths: falseeigentlich absolute Pfade verhindern soll, greift dieser Schutz nicht für Link-Einträge - Trust in Archive-Metadaten: Die Library vertraut blind auf die Pfadangaben im TAR-Header
Angriffsvektor
Ein typischer Angriff läuft wie folgt ab:
# Schritt 1: Angreifer erstellt ein manipuliertes TAR-Archiv
# Das Archiv enthält einen Hardlink mit absolutem Pfad
tar -cf malicious.tar --hard-dereference /tmp/payload
# Manipuliere TAR-Header, um Link-Target auf /etc/cron.d/backdoor zu setzen
# Schritt 2: Opfer extrahiert das Archiv
# node-tar überschreibt /etc/cron.d/backdoor statt im Zielverzeichnis zu bleiben
node -e "require('tar').extract({file: 'malicious.tar', cwd: './safe-dir'})"
Konkrete Ausnutzungsszenarien:
- Config-File-Manipulation: Überschreiben von
.bashrc,.ssh/authorized_keys, oder systemweiten Konfigurationsdateien - Cron-Job-Injection: Platzierung von Backdoors in
/etc/cron.d/ - Shared-Library-Hijacking: Überschreiben von Libraries in
/usr/lib/ - Supply-Chain-Angriffe: Kompromittierung von CI/CD-Pipelines, die TAR-Archive aus untrusted Sources verarbeiten
⚠️ Folgenabschätzung
Unmittelbare Auswirkung
- Arbitrary File Overwrite: Jede vom extrahierenden Prozess beschreibbare Datei kann überschrieben werden
- Privilege Escalation: Bei Extraktion mit erhöhten Rechten (z.B. in Containern, CI/CD) können kritische Systemdateien modifiziert werden
- Remote Code Execution: Durch Manipulation von Startup-Skripten, Cron-Jobs oder Library-Pfaden
Betroffene Umgebungen
Besonders gefährdet sind:
- CI/CD-Pipelines: Die automatisch TAR-Archive aus Git-Repositories oder Artifact-Stores verarbeiten
- Package-Manager: npm, yarn und pnpm verwenden intern TAR-Operationen
- Build-Systeme: Webpack, Rollup, Vite mit TAR-basierten Plugins
- Container-Build-Prozesse: Docker/Podman Layer-Extraktion
- Deployment-Tools: Automatische Extraktion von Release-Artifacts
- Backup-Restore-Mechanismen: Automatische TAR-Extraktion
Langfristige Konsequenzen
- Supply-Chain-Kompromittierung: Einmal kompromittierte Build-Systeme können weitere Pakete infizieren
- Vertrauensverlust: Erschütterung des Vertrauens in npm-Ökosystem-Sicherheit
- Compliance-Verstöße: DSGVO, NIS2, Cyber Resilience Act
- Reputationsschäden: Insbesondere für SaaS-Anbieter und Plattform-Betreiber
🛡️ Mitigationsstrategien
Sofortmaßnahmen (Priorität 1) ⚡
-
Update auf Version 7.5.3:
npm update tar # Oder explizit: npm install tar@7.5.3 -
Lockfile neu generieren:
# npm rm package-lock.json && npm install # yarn rm yarn.lock && yarn install # pnpm rm pnpm-lock.yaml && pnpm install -
Transitive Dependencies prüfen:
npm ls tar # Prüfen, ob Sub-Dependencies noch alte Versionen verwenden -
CI/CD-Pipelines auditieren:
npm audit # Prüfung auf bekannte Schwachstellen
Detektionsmaßnahmen 🔍
# Prüfen, ob vulnerable Version installiert ist
npm ls tar | grep -E "tar@[0-7]\.[0-5]\.[0-2]"
# System auf verdächtige Dateiänderungen prüfen
find /etc /root ~/.ssh -type f -mtime -7 -ls
# Logs auf TAR-Extraktion außerhalb erwarteter Pfade prüfen
grep -r "EACCES\|Permission denied" /var/log/
Temporäre Workarounds
Falls ein sofortiges Update nicht möglich ist:
-
Eingabe-Validierung:
// TAR-Archive nur aus trusted Sources akzeptieren const trustedSources = ['internal-registry.company.com']; if (!trustedSources.includes(archiveSource)) { throw new Error('Untrusted archive source'); } -
Sandbox-Extraktion:
// Extraktion in isoliertem Container/VM const { spawn } = require('child_process'); spawn('docker', ['run', '--rm', '-v', './archives:/data', 'node:alpine', 'tar', '-xf', '/data/archive.tar']); -
Filesystem-Monitoring:
// inotify/fsevents nutzen, um unerwartete Dateiänderungen zu detektieren const chokidar = require('chokidar'); chokidar.watch('/etc', { ignoreInitial: true }) .on('all', (event, path) => { console.warn(`Unexpected change: ${event} on ${path}`); });
Langfristige Sicherheitsverbesserungen
- Dependency-Scanning: Integration von
npm audit, Snyk, oder Dependabot in CI/CD - Least Privilege: TAR-Extraktion mit minimalen Rechten durchführen
- Content Security: TAR-Archive nur aus verifizierten, signierten Quellen akzeptieren
- Network Segmentation: Build-Systeme von Produktionsumgebungen isolieren
🔐 Best Practices für Node.js-Sicherheit
Für Entwickler
- Dependency-Updates automatisieren: Renovate Bot, Dependabot
- Lock-Files committen: Garantiert reproduzierbare Builds
- Audit regelmäßig durchführen:
npm auditin Pre-Commit-Hooks - SBOM generieren: Software Bill of Materials für Transparenz
Für Organisationen
- Supply-Chain-Security-Policy: Richtlinien für Dependency-Management
- Private npm Registry: Kontrolle über verwendete Packages
- Security Champions: Dedizierte Ansprechpartner für Security-Themen
- Incident Response Plan: Vorbereitung auf Supply-Chain-Kompromittierung
📊 Betroffene Versionen und Erkennung
Anfällige Versionen
- node-tar: Alle Versionen <= 7.5.2
- Kritische Versionsrange: 0.0.0 - 7.5.2
- Sichere Version: >= 7.5.3
Automatische Erkennung
#!/bin/bash
# Scan-Skript für anfällige node-tar-Installationen
echo "Scanning for vulnerable node-tar installations..."
# Alle Node-Projekte finden
find /var/www /home -name "package.json" 2>/dev/null | while read pkg; do
dir=$(dirname "$pkg")
echo "Checking: $dir"
cd "$dir"
if [ -f "package-lock.json" ] || [ -f "node_modules/tar/package.json" ]; then
npm ls tar 2>/dev/null | grep -E "tar@[0-7]\.[0-5]\.[0-2]" && \
echo "⚠️ VULNERABLE: $dir"
fi
done
🎯 Warum ist das kritisch?
- Ubiquität: node-tar ist in nahezu jedem Node.js-Projekt als direkte oder transitive Dependency vorhanden
- Unauthenticated Remote Attack: Kein Login erforderlich – jeder, der ein TAR-Archiv einschleusen kann, kann angreifen
- Supply-Chain-Vektor: Ein kompromittierter Build kann Tausende Downstream-Projekte infizieren
- Silent Exploitation: Angriffe hinterlassen minimal Spuren und sind schwer zu detektieren
- PoC verfügbar: Öffentliche Exploits erhöhen das Risiko aktiver Ausnutzung
🚀 Zeitplan und Offenlegung
- Entdeckungsdatum: Unbekannt (vermutlich Januar 2026)
- Patch-Veröffentlichung: 13. Januar 2026 (node-tar 7.5.3)
- CVE-Zuweisung: CVE-2026-23745
- Öffentliche Offenlegung: 16. Januar 2026 (NVD-Veröffentlichung)
- Debian Security Tracker: 17. Januar 2026
🔗 Ressourcen und Referenzen
- NVD: CVE-2026-23745
- GitHub Advisory: GHSA-8qq5-rm4j-mr97
- npm Package: tar@7.5.3
- Fix Commit:
340eb285b6d986e91969a1170d7fe9b0face405e - CWE: CWE-22: Path Traversal
- Node.js Security Releases: Januar 2026 Security Releases
💼 SEKurity unterstützt Sie
Diese Schwachstelle zeigt eindrucksvoll, wie tief verankerte Dependencies zu kritischen Sicherheitsproblemen führen können. Ein einzelnes anfälliges Package kann Ihre gesamte Infrastruktur gefährden.
Unsere Leistungen
- Penetrationstests: Web-Anwendungen, Mobile Apps (Android & iOS), SAP-Systeme, Active Directory
- Großflächige Angriffe: Perimeter-Tests, IT-Infrastruktur-Tests, Red Team Engagements
- Security Awareness: Phishing-Kampagnen, Hacking-Demonstrationen
Handeln Sie jetzt – bevor Angreifer es tun.
Kontakt:
🌐 Webseite: www.sekurity.de
📧 Anfragen: www.sekurity.de/kontakt
📱 LinkedIn: SEKurity GmbH
Ihr SEKurity Team – Your Trusted Adversaries
Die Sicherheit Ihrer Supply Chain ist unser Antrieb.
Quellen
Schlagwörter
Über den Autor
SEKurity Team
Offensive Security Experten
Das SEKurity GmbH Team besteht aus erfahrenen Penetrationstestern, Security-Forschern und Cybersecurity-Beratern. Unter dem Motto 'Your Trusted Adversaries' unterstützen wir Organisationen dabei, ihre IT-Sicherheit aus der Perspektive eines Angreifers zu bewerten und zu verbessern.