Гигантская 15-летняя брешь в Python затрагивает сотни тысяч проектов

В языке программирования Python найдена брешь, которая закралась в него ещё в 2007 году. Разработчики знали о ней все 15 лет, но так и не смогли устранить, ограничившись лишь предупреждением в документации. По предварительным данным, за это время брешь проникла в сотни тысяч репозиториев с открытым исходным кодом, а число затронутых ею проприетарных программ ещё предстоит выяснить, пишет Bleeping Computer.

Оставить комментарий

Проблема усугубляется тем, что Python — самый популярный язык программирования в мире, и на нём пишут миллионы программистов. Python уже год удерживает лидерство в рейтинге TIOBE, который возглавил в прошлом октябре.

Уязвимость выявили в конце августа 2007 года, но не только не закрыли, но даже не присвоили ей степень опасности. Пока что у неё имеется лишь факт существования и индекс CVE-2007-4559.

Уязвимость находится в пакете tarfile Python в части кода, где используются непроверенные функции tarfile.extract () или tarfile.extractall (). Она позволяет перезаписывать и захватывать файлы на компьютере жертвы, когда уязвимое приложение открывает вредоносный tar-архив через tarfile.

За 15 лет разработчики Python из Python Software Foundation не предприняли ничего, чтобы обезопасить пользователей программ, в которых прячется уязвимость, а также решили не предупреждать разработчиков о проблеме.

Топ языков программирования по версии IEEE в 2022 году
По теме
Топ языков программирования по версии IEEE в 2022 году

В течение полутора десятка лет о CVE-2007-4559 никто не вспоминал, что немного снижало риск её эксплуатации киберпреступниками. Уязвимость снова всплыла в начале 2022 года в ходе расследования другого инцидента безопасности, связанного с Python. Но даже повторное освещение не побудило разработчиков языка исправить её.

Однако теперь в документации к Python есть предупреждение, что «открытие архивов из ненадёжных источников может быть опасным», а в системе отслеживания ошибок Python появилось уведомление, что разработчики разобрались с CVE-2007-4559.

В этом году брешь обнаружили исследователи компании Trellix, когда изучали совсем другую проблему в Python. Чтобы оценить опасность своей находки, эксперты взяли 257 репозиториев, которые, по их предположению, с наибольшей вероятностью могли содержать уязвимый код, и проверили вручную. «Дыра» присутствовала в 65% из них.

В дальнейшем к изучению проблемы подключился GitHub. «С помощью GitHub мы получили гораздо больший набор данных, включающий 588840 уникальных репозиториев, в Python-коде которых содержится import tarfil», — сообщили представители Trellix.

Как оплачиваются самые популярные языки GitHub и какой прогноз
По теме
Как оплачиваются самые популярные языки GitHub и какой прогноз

В общей сложности, по подсчётам экспертов, заражёнными оказались минимум 350 тысяч проектов на GitHub. На деле ситуация может быть ещё хуже, поскольку многие из этих проектов использовались для обучения сервиса GitHub CoPilot, который даёт программистам подсказки при написании кода.

В Trellix также подготовили исправления для чуть более 11 тысяч проектов на GitHub — они будут доступны в ответвлении затронутых репозиториев и добавлены в основной проект через пулреквесты. Исследователи полагают, что более 70 тысяч проектов получат исправление в ближайшие несколько недель, но достичь 100%-ного охвата может быть проблематично.


Читать на dev.by