Вновь всплыла довольно старая неисправленная уязвимость безопасности Python. Исследователи предупреждают, что сотни тысяч проекты могут быть уязвимы для выполнения кода.

У исследователей кибербезопасности из Trellix есть недавно обнаруженный CVE-2007-4559 — уязвимость в пакете tar-файлов Python, впервые обнаруженная еще в 2007 году. 

Однако тогда эта уязвимость так и не получила должного внимания. патч, а просто предупреждение, опубликованное в бюллетене по безопасности.

Выявление уязвимых проектов

Уязвимость находится в коде, который использует непроверенную функцию tarfile.extract() или встроенные значения по умолчанию для tarfileextractall(). «Это ошибка обхода пути, которая позволяет злоумышленнику перезаписывать произвольные файлы», — пишет издание.

Теперь, говорят исследователи, уязвимость дает злоумышленнику доступ к файловой системе. Трекер ошибок Python был обновлен объявлением о закрытой проблеме с дополнительным добавлением, что «извлечение архивов из ненадежных источников может быть опасным». Было сказано, что уязвимостью можно злоупотреблять как в Windows, так и в Linux.

Пятнадцать лет — это большой срок, и, по-видимому, около 350 000 проектов могут быть уязвимы. Исследователи Trellix сначала взяли выборку из 257 репозиториев (61%), которые были уязвимы. Автоматический анализ дал 65% положительных результатов.

Затем вместе с GitHub исследователи Trellix обнаружили 588 840 уникальных репозиториев, в коде Python которых есть «import tarfile», и пришли к выводу, что 350 000 (или примерно 61%) могут быть уязвимы.

Эта проблема присутствует в «огромном количестве» отраслей, как выяснили исследователи. Неудивительно, что больше всего пострадал сектор разработки, за которым следует веб-сайт. и технологии машинного обучения.

Исследователи Trellix выпустили исправления примерно для 11 000 проектов, доступных в виде ответвления затронутого репозитория. Эти патчи будут добавлены в основной проект через запрос на вытягивание позже, это было добавлено. Еще 70 000 проектов должны быть исправлены в течение пары недель, но для исправления всех потребуется некоторое время.