15-летний Python-баг позволяет выполнить код и затрагивает 350 000 проектов

15-летний Python-баг позволяет выполнить код и затрагивает 350 000 проектов

15-летний Python-баг позволяет выполнить код и затрагивает 350 000 проектов

Уязвимость Python-модуля tarfile за 15 лет никто так и не пропатчил. А меж тем она затрагивает более 350 тысяч репозиториев с открытым исходным кодом и позволяет выполнить произвольный код.

Впервые о проблеме стало известно в 2007 году, ей присвоили идентификатор CVE-2007-4559. Интересно, что никто не стал устранять брешь, единственное — разработчиков просто предупредили о риске.

Брешь затрагивает код, использующий функцию tarfile.extract(). Это классический баг обхода пути (path traversal), позволяющий условному атакующему перезаписывать произвольные файлы.

Удивительно, что за все 15 лет не было сообщений об эксплуатации уязвимости, учитывая, что технические детали были доступны в отчете 2007 года. Тем не менее баг представляет опасность для цепочек поставки софта по моей день.

На оставшуюся дыру обратили внимание специалисты компании Trellix, описывающие ее следующим образом:

«Уязвимость существует из-за того, что код в функции extract в Python-модуле tarfile доверяет информации в объекте TarInfo».

Сообщение на площадке баг-трекера Python гласит, что вопрос был закрыт, поскольку документацию обновили, добавив приписку, что «распаковывать архивы из непроверенных источников может быть опасно».

Проанализировав масштаб проблемы, специалисты Trellix пришли к выводу, что уязвимость затрагивает более 350 тысяч проектов. В отчете исследователей описываются простые шаги, которых достаточно для эксплуатации CVE-2007-4559 в Windows-версии Spyder IDE.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Новые уязвимости в PHP грозят веб-приложениям DoS и утечкой данных

В PHP пропатчены пять уязвимостей, повышающих риск атаки на веб-приложения. Последствия эксплойта могут быть различными, от утечки конфиденциальной информации до отказа в обслуживании (DoS).

Все уязвимости связаны с функционированием встроенной обертки HTTP — дополнительного кода, расширяющего возможности работы с потоками.

Уязвимость CVE-2025-1861 возникла из-за сокращения заголовков перенаправления Location. Предельный размер буфера, выделяемого под значения местоположения, был задан как 1024 байт вместо 8000, рекомендованного по RFC 9110.

Из-за этого в URI могла выпасть критически важная информация. Более того, проблема грозила перенаправлением на другой ресурс, а возврат ошибки мог привести к DoS на удаленном сайте.

Причиной CVE-2025-1734 является некорректная обработка недопустимых заголовков. Отсутствие двоеточия либо знак пробела перед ним не маркировались как ошибка; в результате при парсинге массива в приложении возникала возможность request smuggling — вмешательства в обработку HTTP-запросов с целью получения доступа к конфиденциальным данным в обход защиты.

В появлении CVE-2025-1217 повинен парсер, который неправильно обрабатывал свернутые заголовки. Он воспринимал пробел в начале строки как разделитель, а не продолжение заголовка, что грозило ошибками в определении MIME-типа и некорректной интерпретацией ответа на запрос в приложении, в особенности после редиректа.

Из-за наличия проблемы CVE-2025-1219 потоки libxml возвращали неправильное значение в заголовке Content-Type в ответ на запрос ресурса-редиректора. При перенаправлении не происходила очистка списка сохраненных заголовков, и php_libxml_input_buffer_create_filename(), сканируя блок, могла ошибиться с выбором, что влекло некорректный парсинг документа и обход проверки подлинности.

Уязвимость CVE-2025-1736 возникла из-за ошибки в реализации функции check_has_header, которая не проверяла наличие управляющего символа \r в комбинации, сигнализирующей перенос строки (\r\n).

В тех случаях, когда в заголовке используется значение из пользовательского ввода, отсутствие \r могло, к примеру, воспрепятствовать отправке HTTP-заголовка Authorization. Подобная оплошность способна повлиять на результат и повлечь DoS либо другие неожиданные проблемы.

Патчи включены в состав выпусков PHP 8.1.32, 8.2.28, 8.3.19 и 8.4.5. Разработчикам настоятельно рекомендуется произвести обновление: уязвимости в PHP пользуются популярностью у злоумышленников.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru