
Una prueba de concepto para CVE-2019-14751
Una Prueba de Concepto para CVE-2019-14751
NLTK Downloader anterior a la versión 3.5 es vulnerable a un directory traversal, permitiendo a atacantes escribir archivos arbitrarios mediante un ../ (dot dot slash) en un paquete NLTK (archivo ZIP) que se maneja incorrectamente durante la extracción.
Para más información, ver https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751/.
Coloque index.xml y zip-slip.zip en un directorio donde serán servidos por un servidor web. Ajuste los permisos para permitir que los archivos sean servidos.
Ejecute NLTK Downloader
$> python3
>>> import nltk
>>> nltk.download()
Cambie el valor en el campo "Server Index" para que apunte al index.xml del paso 1
Haga clic en "Download" para instalar el paquete malicioso
Verifique la existencia de "/tmp/evil.txt".
$> cat /tmp/evil.txt
This is an evil file
$>
Esta vulnerabilidad está corregida en NLTK versión 3.4.5 y posteriores. El siguiente commit resuelve la vulnerabilidad: https://github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10