
Une preuve de concept pour CVE-2019-14751
Une preuve de concept pour CVE-2019-14751
Le téléchargeur NLTK antérieur à la version 3.5 est vulnérable à une traversée de répertoire, permettant aux attaquants d'écrire des fichiers arbitraires via un ../ (dot dot slash) dans un paquet NLTK (archive ZIP) qui est mal manipulé lors de l'extraction.
Pour plus d'informations, voir https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751/.
Placez index.xml et zip-slip.zip dans un répertoire où ils seront servis par un serveur web. Ajustez les permissions pour permettre le service des fichiers.
Exécutez le téléchargeur NLTK
$> python3
>>> import nltk
>>> nltk.download()
Modifiez la valeur dans le champ "Server Index" pour qu'elle pointe vers le fichier index.xml de l'étape 1
Cliquez sur "Download" pour installer le paquet malveillant
Vérifiez l'existence de "/tmp/evil.txt".
$> cat /tmp/evil.txt
This is an evil file
$>
Cette vulnérabilité est corrigée dans NLTK version 3.4.5 et ultérieures. Le commit suivant résout la vulnérabilité : https://github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10