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

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

Новые уязвимости в 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 пользуются популярностью у злоумышленников.

Разработчик запустил Doom на беспроводных наушниках без экрана

Кажется, список устройств, на которых запускали Doom, снова пополнился, на этот раз беспроводными наушниками. Разработчик Арин Саркисян (Arin-S) сумел портировать легендарный шутер на пару PineBuds Pro. Тех самых TWS-наушников, у которых вообще нет экрана.

Звучит как очередная шутка из серии «Doom запустили на тостере», но всё по-настоящему.

PineBuds Pro — редкий случай на рынке: это одни из немногих наушников с открытой прошивкой, чем Арин и воспользовался. Эти наушники выпускает Pine64 — та же компания, что стоит за RISC-V-паяльниками вроде Pinecil.

Внутри каждого наушника скрывается Arm Cortex-M4F, и именно он стал сердцем проекта DoomBuds. Ради эксперимента разработчик разогнал процессор с 100 до 300 МГц и полностью отключил энергосберегающий режим. Сегодня такой разгон для встраиваемых чипов звучит почти как экстремальный спорт.

 

Отдельной головной болью стали память и хранилище. Чтобы игра вообще влезла в наушники, Арину пришлось серьёзно перекроить код: заранее сгенерировать таблицы, сделать часть переменных константами, отключить систему кеширования и выкинуть всё лишнее. В результате сам движок Doom уложился менее чем в 1 МБ. А WAD-файл Doom 1 пришлось ужать с 4,2 до 1,7 МБ — благо в сети давно есть «облегчённые» версии ресурсов.

Ну и главный вопрос: как играть в Doom без экрана? Решение оказалось неожиданно практичным. Арин использовал UART-подключение PineBuds Pro, чтобы стримить картинку на внешнее устройство или даже в интернет. Bluetooth тоже рассматривался, но по совокупности факторов UART оказался быстрее и стабильнее.

В итоге картинка передаётся в формате MJPEG, а производительность достигает примерно 18 кадров в секунду. Теоретически можно было бы выжать около 25 fps, но процессору банально не хватает сил быстро перекодировать видеопоток.

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