
A Proof of Concept for CVE-2019-14751
Доказательство концепции для CVE-2019-14751
Загрузчик NLTK версии ниже 3.5 уязвим к обходу каталогов, что позволяет злоумышленникам записывать произвольные файлы с помощью ../ (точка точка слэш) в пакете NLTK (ZIP-архив), который некорректно обрабатывается при извлечении.
Дополнительную информацию см. по адресу https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751/.
Поместите index.xml и zip-slip.zip в каталог, откуда они будут обслуживаться веб-сервером. Настройте права доступа, чтобы разрешить обслуживание файлов.
Запустите загрузчик NLTK
$> python3
>>> import nltk
>>> nltk.download()
Измените значение в поле «Server Index» так, чтобы оно указывало на index.xml из шага 1
Нажмите «Download», чтобы установить вредоносный пакет
Проверьте наличие файла «/tmp/evil.txt».
$> cat /tmp/evil.txt
This is an evil file
$>
Эта уязвимость исправлена в NLTK версии 3.4.5 и выше. Следующий коммит устраняет уязвимость: https://github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10