
Ein Proof of Concept für CVE-2019-14751
Ein Proof of Concept für CVE-2019-14751
Der NLTK Downloader vor Version 3.5 ist anfällig für eine Directory-Traversal-Schwachstelle,
die es Angreifern ermöglicht, beliebige Dateien über ein ../ (dot dot slash)
in einem NLTK-Paket (ZIP-Archiv) zu schreiben, das während der Extraktion fehlerhaft behandelt wird.
Weitere Informationen finden Sie unter https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751/.
Platzieren Sie index.xml und zip-slip.zip in einem Verzeichnis, in dem sie von einem Webserver bereitgestellt werden. Passen Sie die Berechtigungen an, damit die Dateien bereitgestellt werden können.
Führen Sie den NLTK Downloader aus
$> python3
>>> import nltk
>>> nltk.download()
Ändern Sie den Wert im Feld "Server Index", sodass er auf die index.xml aus Schritt 1 verweist
Klicken Sie auf "Download", um das schädliche Paket zu installieren
Überprüfen Sie, ob "/tmp/evil.txt" existiert.
$> cat /tmp/evil.txt
This is an evil file
$>
Diese Sicherheitslücke ist in NLTK Version 3.4.5 und später behoben. Der folgende Commit behebt die Sicherheitslücke: https://github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10