Про брешь в защите было известно еще в 2007, но исправлять ее никто не стал.
Выяснилось, что обнаруженная в 2007 году уязвимость под идентификатором CVE-2007-4559 в Python-модуле tarfile сейчас затрагивает более 350 000 проектов с открытым исходным кодом. Брешь связана с функциями extract и extractall в модуле tarfile, позволяет хакерам провести атаку обхода каталога (path traversal) и перезаписать произвольные файлы, добавляя последовательность '..' к именам файлов в tar-архиве.
Проще говоря, злоумышленник может воспользоваться брешью, загрузив tar-архив таким образом, чтобы можно было выйти из каталога, в который должен быть извлечен файл, а потом выполнить произвольный код и получить контроль над устройством жертвы.
Необычно то, что уязвимость никто не исправил еще в 2007 году – вопрос закрыли после обновления документации. В обновлении было предупреждение: “Никогда не извлекайте архивы из ненадежных источников без предварительной проверки, так как файлы могут создаваться вне пути”.
Компания Trellix, специалисты которой и обнаружили уязвимость, создала свой инструмент под названием Creosote, помогающий искать CVE-2007-4559. Именно с его помощью исследователи нашли уязвимость в Spyder Python IDE и Polemarch.
Кроме того, эксперты Trellix уже подготовили исправления более чем для 11 000 проектов. Исследователи ожидают, что более 70 000 репозиториев получат исправления в ближайшие несколько недель.
С дополнительными техническими подробностями и примерами эксплуатации CVE-2007-4559 в Windows-версии Spyder IDE и web-интерфейсе Polemarch можно ознакомиться в отчете Trellix.
Лечим цифровую неграмотность без побочных эффектов