Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-12243-NLTK-PoC — # Docker-Lab zur Demonstration von CVE-2026-12243 Path Traversal in NLTK vor 3.10.0 Docker-Lab, das die Path-Traversal-Schwachstelle CVE-2026-12243 in NLTK vor Version 3.10.0 demonstriert und dabei das verwundbare sowie das gepatchte Verhalten mit einem synthetischen Geheimnis in einer isolierten, offline Umgebung gegenüberstellt. | Kitploit
Tools/GitHubGitHub/morzelowski/cve-2026-12243-nltk-poc
Container-SicherheitSchwachstellenanalyseWebsicherheitLernen & BildungLabs & Praxis
GitHubmorzelowski/cve-2026-12243-nltk-poc

CVE-2026-12243-NLTK-PoC

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

# Docker-Lab zur Demonstration von CVE-2026-12243 Path Traversal in NLTK vor 3.10.0 Docker-Lab, das die Path-Traversal-Schwachstelle CVE-2026-12243 in NLTK vor Version 3.10.0 demonstriert und dabei das verwundbare sowie das gepatchte Verhalten mit einem synthetischen Geheimnis in einer isolierten, offline Umgebung gegenüberstellt.

vor 9h 25mNoch nicht geprüft
Teilen

CVE-2026-12243 — NLTK Path Traversal Lab

CVE NLTK Lab License

Ein kleines, reproduzierbares Docker-Lab, das das percent-kodierte Path-Traversal-Verhalten in NLTK 3.9.4 mit dem korrigierten Verhalten in NLTK 3.10.0 vergleicht.

Die verwundbare Version validiert den Ressourcennamen vor der URL-Dekodierung. Die fixierte Payload %2e%2e/%2e%2e/outside/lab-secret.txt besteht die Prüfung, wird später zu ../../outside/lab-secret.txt dekodiert und verlässt sowohl das konfigurierte NLTK-Datenverzeichnis als auch das Arbeitsverzeichnis des Prozesses. Die gepatchte Version weist dieselbe Eingabe zurück.

[!CAUTION] Dieses Repository dient ausschließlich der defensiven Schulung und autorisierten Tests. Das Lab verwendet ein festes synthetisches Geheimnis in einem isolierten Container. Passen Sie es nicht an, um auf Systeme oder Daten zuzugreifen, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testberechtigung haben.

Auf einen Blick

ContainerNLTK-VersionErwartetes Ergebnis
vulnerable3.9.4Liest den synthetischen Marker außerhalb von /lab/nltk_data
patched

Es wird kein Korpus-Download, Server, Port, Bind-Mount oder eine Internetverbindung zur Laufzeit verwendet.

Voraussetzungen

  • Docker Engine oder Docker Desktop
  • Docker Compose v2 (docker compose)
  • Eine POSIX-Shell für run.sh

Verwendung

root@kitploit:~
git clone https://github.com/morzelowski/CVE-2026-12243-NLTK-PoC.git
cd CVE-2026-12243-NLTK-PoC
docker compose build
./run.sh

Erwartetes Ergebnis:

root@kitploit:~
=== Vulnerable image: NLTK 3.9.4 ===
NLTK version       : 3.9.4
Working directory  : /app
Configured data dir: /lab/nltk_data
Encoded resource   : %2e%2e/%2e%2e/outside/lab-secret.txt
Decoded resource   : ../../outside/lab-secret.txt
Resolved candidate : /outside/lab-secret.txt
NLTK warning       : Security Violation [pathsec.open]: Unauthorized path /outside/lab-secret.txt
NLTK result        : read 36 bytes
Synthetic marker   : CVE-2026-12243-SYNTHETIC-LAB-MARKER
[PASS] Traversal escaped the configured NLTK data directory.

=== Patched image: NLTK 3.10.0 ===
NLTK version       : 3.10.0
NLTK result        : blocked (ValueError: Unsafe resource path: '...')
[PASS] Patched version rejected the same encoded traversal.

Lab completed: traversal reproduced and patched rejection verified.

Das betroffene Image meldet, dass /outside/lab-secret.txt nicht autorisiert ist, gibt seinen Inhalt aber dennoch zurück, da NLTK 3.9.4 standardmäßig nur warnende Pfadsicherheit verwendet. Ausnahme- und Warnungstexte können leicht variieren; run.sh verwendet den Prozess-Exit-Status und keinen fragilen Textabgleich, um zu entscheiden, ob die Demonstration bestanden wurde.

So funktioniert die Demonstration

Jedes Image enthält dieses bewusst getrennte Layout:

root@kitploit:~
/
├── app/
│   └── poc.py          # process CWD is /app
├── lab/
│   └── nltk_data/      # configured NLTK search root
└── outside/
    └── lab-secret.txt  # public synthetic marker

poc.py ersetzt nltk.data.path durch /lab/nltk_data und übergibt den fixierten Ressourcennamen %2e%2e/%2e%2e/outside/lab-secret.txt an nltk.data.load(..., format="raw"). In der betroffenen Version erfolgt die Dekodierung zu spät im Validierungsablauf:

root@kitploit:~
/lab/nltk_data
      ↓  ../../outside/lab-secret.txt
/outside/lab-secret.txt

Da das Arbeitsverzeichnis /app ist, befindet sich der Canary außerhalb beider für die Demonstration relevanten Orte: /app und /lab/nltk_data.

Das Skript enthält zwei explizite Assertions:

  1. NLTK 3.9.4 muss den bekannten synthetischen Marker zurückgeben.
  2. NLTK 3.10.0 muss exakt denselben Ressourcennamen ablehnen.

Jedes andere Ergebnis führt zu einem Exit-Code ungleich Null, sodass automatisierte Prüfungen keinen falschen Erfolg melden können.

Sicherheitsmodell

Die Compose-Konfiguration begrenzt das Lab absichtlich:

  • network_mode: none deaktiviert die Netzwerkverbindung, während eine der Demonstrationen läuft.
  • Es werden keine Host-Ports veröffentlicht.
  • Es werden keine Host-Verzeichnisse oder der Docker-Socket eingebunden.
  • Die Container laufen als unprivilegierter Benutzer mit allen Linux-Capabilities entfernt und no-new-privileges aktiviert.
  • Das Root-Dateisystem ist schreibgeschützt; nur ein kleines, noexec-temporäres Dateisystem ist beschreibbar.
  • Der einzige offengelegte Wert ist fixtures/lab-secret.txt, ein öffentlicher Testmarker, der während des Builds in das Image kopiert wird.

Der Image-Build benötigt Zugriff auf den Paketindex, um die beiden festgelegten NLTK- Versionen zu installieren. Die Laufzeitausführung erfolgt offline.

Technische Details

  • CVE: CVE-2026-12243
  • GHSA: GHSA-m42h-3232-vpv3
  • Schwachstelle: CWE-22 — Path Traversal
  • Betroffen: NLTK-Versionen vor 3.10.0
  • Behoben: NLTK 3.10.0
  • Auswirkung: Offenlegung von Dateien, die für den Anwendungsprozess lesbar sind, wenn ein Angreifer einen Ressourcennamen kontrolliert, der an nltk.data.load() oder nltk.data.find() übergeben wird

Das Lab fixiert 3.9.4, da dies die konkrete Version ist, die im ursprünglichen Bericht genannt wird, und 3.10.0, da dies die erste gepatchte Version ist, die in der Maintainer-Advisory verzeichnet ist.

Abhilfe

Aktualisieren Sie NLTK und halten Sie es aktuell:

root@kitploit:~
python -m pip install "nltk>=3.10.0"

Vermeiden Sie außerdem, nicht vertrauenswürdige Ressourcennamen an Dateisystem-Lade-APIs zu übergeben. Wenn eine Benutzerauswahl erforderlich ist, ordnen Sie benutzerorientierte Bezeichner einer Allowlist von anwendungseigenen Ressourcen zu, anstatt Pfade oder URLs direkt zu akzeptieren.

Manuelle Befehle

Führen Sie jede Seite unabhängig aus:

root@kitploit:~
docker compose run --rm vulnerable
docker compose run --rm patched

Vollständig aufgelöste Compose-Konfiguration anzeigen:

root@kitploit:~
docker compose config

Lokal erstellte Lab-Images entfernen:

root@kitploit:~
docker compose down --rmi local

Fehlerbehebung

  • permission denied: ./run.sh — führen Sie einmal chmod +x run.sh aus.
  • docker: command not found — installieren Sie Docker Desktop oder Docker Engine.
  • Paket-Download-Fehler während des Builds — stellen Sie sicher, dass Docker temporären ausgehenden Zugriff für den Build hat, und wiederholen Sie dann docker compose build --no-cache.

Referenzen

  • GitHub-Maintainer-Advisory GHSA-m42h-3232-vpv3
  • NVD-Eintrag für CVE-2026-12243
  • Ursprüngliches NLTK-Issue #3504
  • NLTK-Fix-Pull-Request #3522
  • Fix-Commit aec4fce

Lizenz

Veröffentlicht unter der MIT-Lizenz.

Tool herunterladen
3.10.0
Blockiert die kodierte Traversal