
Una prova di concetto per CVE-2019-14751
Una Proof of Concept per CVE-2019-14751
NLTK Downloader prima della versione 3.5 è vulnerabile a un directory traversal, che consente agli attaccanti di scrivere file arbitrari tramite un ../ (dot dot slash) in un pacchetto NLTK (archivio ZIP) che viene gestito in modo non corretto durante l'estrazione.
Per maggiori informazioni vedere https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751/.
Posizionare index.xml e zip-slip.zip in una directory in cui verranno serviti da un web server. Regolare i permessi per consentire la distribuzione dei file.
Eseguire NLTK Downloader
$> python3
>>> import nltk
>>> nltk.download()
Modificare il valore nel campo "Server Index" in modo che punti a index.xml del passaggio 1
Fare clic su "Download" per installare il pacchetto dannoso
Verificare l'esistenza di "/tmp/evil.txt".
$> cat /tmp/evil.txt
This is an evil file
$>
Questa vulnerabilità è corretta in NLTK versione 3.4.5 e successive. Il seguente commit risolve la vulnerabilità: https://github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10