PHP2Shell взорвался: CVSS 9.2, за день до открытия, и эти два отверстия были в коде в течение 10 лет.
Во-первых, вывод таков:PHP произвел несанкционированный удаленный код для CVSS 9.2, номеров CVE-2026-109618 и CVE-2026-109619, с никнеймом PHP2Shell. 20 октября он был обнародован и 21 октября в 1400 патчей UTC были выпущены, а медовые канистры Amazon были записаны 17 октября — за четыре дня до открытия.
Что еще хуже, так это то, что эти две дырки первыми попадают на PHP 5.4, что означает:Они были в коде более десяти лет.Я не знаю. И в 2024 году, когда аудит разработчика ядра PHP обнаружил путь OOM, команда встретилась, чтобы обсудить, как его исправить.Мы не согласились, а потом не исправили.Я не знаю. Причина в том, что никто не думал, что его действительно можно использовать.
Эта фраза сейчас выглядит особенно иронично. Причина неспособности сделать это не в том, что отверстие незначительно, а в том, что цепь слишком сложна, чтобы выйти за пределы физических возможностей исследователей-людей. Затем пришел ИИ и написал его.
Во-первых, уберите слово «многонациональное чрезвычайное реагирование». Смотри.
Любимое слово титульной партии — «глобальная тревога». На этот раз это не преувеличение, но ясная оценка.
- PHP официальный20 октября было выпущено предварительное уведомление, в котором говорилось, что 21 октября в 14:00 UTC будет выпущен в безопасной версии, если детали будут утечка или подача. В результате номер CVE в тот же день был зарезан на Hacker News, а релиз, запланированный на 22 октября, был вынужден на день раньше.
- CERT-EUРекомендации по выпуску 2026-018 и включают оба CVE.
- облачная вспышка21 октября технический директор Dane Knecht прямо заявил, что «ранняя атака, как было замечено, возникла», и правила WAF были выпущены в полном объеме, включая бесплатных пользователей. Но он подчеркнул, что это был просто временной разрыв, и реальным решением было исправление.
- Информация об угрозах AmazonМедовые банки MadPot были пойманы 17 октября, еще одна партия была поймана 21 октября, а полезная нагрузка и инфраструктура указывали на ряд различных злоумышленников. php2shell уже широко используется.
- Посмотреть BwrОбе дыры вновь появляются, в то время как попытки использовать обе наблюдаются.
Так что "атака найдена" - это не рендеринг, а факт. И многонациональное реагирование на чрезвычайные ситуации не является ударом — просто основными субъектами реагирования являются производители, CDN и организации по чрезвычайным ситуациям, а не какое-либо правительство в стране.
Два, два отверстия, два совершенно разных способа умереть.
Многие думают, что это дыра с двумя числами, нет. Это два отдельных маршрута атаки, каждый CVSS 9.2.
CVE-2026-109618: бомба, когда память истощается
Обработка запроса прерывается при сбое дистрибутива памяти PHP. Проблема заключается в следующем:На этом этапе внутренние данные запроса могут быть только наполовину инициализированы, и последующая логика очистки использовала бы эту неинкорпорированную часть плохих данных в качестве действительных данных.
Метод триггера прост: построить многочастный запрос, чтобы взорвать память. Странное дело,Размер запроса соответствует вашему потолку.Это не максимальный размер поста, который вы настроили, это декодирование и потребление внутренней обработки.
Худший из них — Mod php. Мод php для Apache при запросе стартапа не удалсяОн все еще будет убираться.Таким образом, эта цепочка может быть завершена до запуска любого применимого кода. Ваш PHP-код настолько чист, что нет лазейки, и не остановить его.
PHP-FPM убьет работника, когда он не сможет начать, просто чтобы разорвать цепочку, поэтому официально мод php является самым высоким риском. Но обратите внимание - это не значит, что FPM безопасен.После успешного стартаДо сих пор существует возможность эксплуатации.
CVE-2026-109619: Грязное состояние между запросами
Это еще хуже. PHP будет повторно использовать рабочий процесс для обработки нескольких запросов. Последняя просьба освободить память, указатель остается во внутреннем состоянии; следующая просьба поступает,Прочитайте пустой адрес перед обычной инициализацией.Я не знаю.
Смертельные ошибки (истощение памяти, тайм-аут производительности) прерывают очистку состояния. Еще хуже то, что несмертельный диагноз во время отключения заменил бы неправильное состояние.Переделай.Я не знаю.
Официально подтвержденные пути включают в себя: RCE с фатальной ошибкой при включении PHP 8.5 Fatal error backtraces (открытие по умолчанию) и жизненный цикл сеанса RCE на php и FPM.session.upload_progress По умолчанию вы можете действовать как ранний потребитель в состоянии грязи.И нет необходимости применять Call(s)Я не знаю.
Это отверстие все еще прикреплено.Утечка памятиЯ не знаю. Что просочилось? пароль, токен, ключ API, сертификат для других запросов в памяти процесса. Wiz напрямую сравнивают с Heartbled, что не слишком много.
Timeline - больше, чем просто Look.
| Время | Что случилось? |
|---|---|
| 2024 год | Аудит разработчика ядра PHP обнаружил OOM, что ошибка, команда не имела консенсуса по закону, приостановила его. |
| 2026-08 | Райан Остин из Калифорнии идентифицирует лазейки с OpenAI GPT-5.6 Sol |
| 2026-10-17 | Amazon MadPot может записать попытку за четыре дня до открытия. |
| 2026-10-20 | Номер CVE просочился в Hacker News и Social Media, PHP |
| 2026-10-21 | 14:00 UTC Публикация 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
17 октября необходимо отметить.Общественный день был 20-м, но нападение произошло 17-го.Предложение Amazon простое: отправная точка должна быть не на дату раскрытия, а на 17 октября.
Что касается того, как злоумышленники получили информацию заранее, Amazon сказал, что "неясно". Я не могу вдаваться в это, но ты должен принять реальность.День раскрытия информации никогда не был днем нападения, но день, когда вы, наконец, узнали.
На этот раз это действительно ИИ.
Блог Виз содержит предложение, которое я прочитал дважды: «Эти основные недостатки существовали на протяжении десятилетий, но чтобы доказать, что они могут быть использованы, им нужна исключительно сложная цепочка шагов, на полях реальных возможностей исследователей-людей.Фронтальная модель ИИ значительно снижает этот порог.Я не знаю.
Райан Остин, исследователь из Калифорнии, был найден в проекте OpenAI «Patch the Planet» с GPT-5.6 Sol. Виз нашел ту же проблему самостоятельно. Чтобы использовать его, нам нужна цепочка неисправностей и нацеливание на каждую цель.Макет памяти многократно калиброванWiz говорит, что фронтальная модель позволяет им разрабатывать удобные приложения для различных приложений в течение нескольких часов.
Это не значит, что "И снова победил".Дело в том, что ров «комплекса» терпит неудачу.
Многие старые лазейки не были преодолены за последние два десятилетия не потому, что они несерьезны, а потому, что порог использования слишком высок — несколько недель инвестиций ведущих исследователей и немного удачи. Поэтому вы поместили их в колонку «теоретически рискованные». Теперь этот забор исчез.
Те десятилетние дыры, которые лежат в вашей системе и оцениваются как «трудные и необработанные», должны быть переоценены.
Пять, на какой из них вам стоит пойти?
| филиал | Пострадавшая версия | Удаление |
|---|---|---|
| PHP 8.5 | < 8.5.12 | Поднять до 8.5.12. |
| PHP 8.4. | < 8.4.27 | Подъем до 8.4.27. |
| PHP 8.3. | < 8.3.36 | Поднять до 8.3.36. |
| PHP 8.2. | < 8.2.35 | Поднять до 8.2.35. |
| PHP 7.4 / 8.0 / 8.1 | Все | Официально неопубликованный, только исходный уровень |
| PHP 5.4 - 7.3 | Все | ЭОЛ, правительство не исправляет это. Бизнес |
Несколько реальных напоминаний:
- Выпуск Linux и поставщик LTSПолучил патч заранее.Проверьте консультацию вашего производителя с помощью дистрибутива. Не спешите с исходным кодом.
- Использовать
rpms.remirepo.netПримечание: PHP официально заявил об этом 21 октября.Нет обновленийТаким образом, вы можете переключиться на дистрибутив или сделать его из исходного кода. - Бинарная версия PHP 8.5 также находится на официальной странице загрузки.
- Не думайте, что это нормально — нужно проверить версию зеркала контейнера на PHP.
Шесть, если вы не можете получить пластырь, сделайте эти четыре первыми.
Первое государство:Ни одно из перечисленных ниже не обеспечит вам безопасность.Официальная фраза PHP — «уменьшите воздействие определенных путей атаки, но не делайте установки безопаснее». Их ценность заключается в том, чтобы дать вам время, чтобы получить патчи.
Установите ограничение памяти до -1
Цель: Убрать предсказуемую кепку памяти PHP не удалось, т.е. CVE-2026-109618 подтвердил условие запуска, от которого оно зависит.
Дело в том,Как?- устанавливаться в местах, где применение не изменилось, таких как пул FPM; php_admin_value Конфигурация Apache. Вы должны проверить, что нет всплывающих окон, каталогов, настроек приложения, чтобы добавить ограничение обратно.Затем перезагрузите каждого работника.
Цена ясна: вы находитесь за забором памяти PHP, и сбой в дистрибуции может все еще быть на этом опасном пути. Это должен быть контейнер или группа, чтобы ограничить покрытие, но это только стратегия, чтобы «убить пострадавших людей».Никогда не используйте RLIMIT AS или RLIMIT DATAИменно эти два типа сбоев распределения создают лазейки.
Уменьшить размер post max
Сайты без файла 8M для файла 32M и гарантированные upload_max_filesize Меньше, чем это. При этом к веб-серверу или прокси-слою добавляются лимиты - объем декодированных запросов, количество полей, количество многочастных частей, количество головок, глубина гнезд.Эти ограничения должны охватывать запросы, которые не являются действительными.Или обойдем вокруг.
3. Отключение процесса session.upload
session.upload_progress.enabled = 0
Он написан на php.ini, инструменте FPM или конфигурации сервера.Он должен быть эффективным до запроса.Я не знаю. Использовать ini_set() Или FPM. .user.ini Было слишком поздно, было грязно. Изменения коснутся и всех рабочих.
PHP 8.5 Еще один сингл
fatal_error_backtraces = 0
Этот блок только подтвердил фатальные ошибки, без других вариантов. Также требуются настройки уровня администратора + перезапуск рабочего стола.
Кроме того, официальное упоминание о том, что многие будут игнорировать:Исправьте фатальные ошибки, которые злоумышленники могут вызвать и выполнить тайм-аут., включая резервное копирование, загрузку, обработку импорта, сбои очистки. И...Удалить устаревшие или незаконные конфигурации, налагаемые по запросу- Они выплевывают диагностическую информацию до того, как она будет инициализирована, и подпитывают утечку.
Последнее предложение очень легко понять неправильно:Это не работает, чтобы скрыть диагноз с сообщением об ошибке, ошибками отображения или @.Этого не происходит.
VII. Реальные уроки этого
Я не хочу заканчивать, написав "Закрыть пластырь". Конечно, это пластырь. Сегодня. Но некоторые суждения должны измениться.
- Термин «трудно использовать» больше не совпадает с «предписанным».Цепочка доступа этой дыры в PHP достаточно сложна, чтобы нуждаться в помощи ИИ, который уже помог. Старые дыры в вашем списке активов, которые обозначают «теорийный риск», должны быть переоценены.
- Язык работает в одной точке.WordPress, Drupal, Joomla, Magento, MediaWiki работают на PHP, ваш аудит кода приложения чист, а ядро PHP находится в беде. Компенсаторный ритм инфраструктурных слоев, с выделением прикладных слоев.
- «Код приложения нарушается без запуска». WAF может только задержать.Сам Cloudflare сказал, что это временно. Постановка WAF в качестве решения равнозначна предоставлению жизни для охвата правил.
- В стране много старых сайтов, использующих PHP.Станции, работающие на PHP 5.6/7.0, которые долгое время не поддерживались и висели на облачном мэйнфрейме, находятся в этом диапазоне от 1,3 до 1,9 миллиона. Они не получат никакого уведомления.
Калибровки данных регистрируются: W3Techs говорит, что PHP составляют 69,3% языков, известных службе, и Wiz 70%; хосты экспозиции, исследователь безопасности Сайлас Катлер оценивает более 1,3 миллиона, а поиск Шодан Хенка Поли - более 1,9 миллиона. Эти числа имеют разные калибры и не используют их в качестве точных значений, но шкала одинакова -Миллионы по всему миру.
Стоит вспомнить еще одну деталь: когда просочился номер CVE, вышедшие очки CVSS составили 10,0, PHP был официально подтвержден.Этот счет был неверным.На самом деле это 9.2. Никто ничего не знает об этой детали, но она всегда будет в обращении. Увидев 10.0, вы знаете, что это за волна.
10-летняя дыра, два месяца исследований с помощью ИИ, четыре дня раннего использования, однодневное окно исправления. Эта временная шкала является нормой для всего основного программного обеспечения, которое следует.
Проверьте версию сейчас.php -vИли посмотрите на зеркала контейнера в теге. Не жди завтра.