PHPокалипсис. Почему интернет встал на уши из-за одной уязвимости и пора ли закрывать большую часть сайтов
© Коллаж: «Теперь вы знаете», создано при помощи нейросети
Что случилось
21 октября разработчики PHP экстренно выпустили обновления безопасности из-за двух критических уязвимостей. Подробности о них попали в открытый доступ раньше запланированного срока, когда многие серверы еще не получили исправления. После этого организации по всему миру начали временно отключать сайты, чтобы не оставлять их открытыми для атаки.
PHP — язык программирования, на котором работает серверная часть многих сайтов: та часть системы, которая принимает запросы пользователя, обращается к базе данных и формирует ответ для браузера. В нем обнаружили две опасные ошибки, которые позволяют постороннему человеку отправить на уязвимый сервер специально подготовленный запрос и при определенных условиях заставить его выполнить чужой код. Для атаки не нужно заранее красть пароль администратора или получать доступ к учетной записи.
По данным W3Techs, PHP используется примерно на 70% сайтов, для которых известен серверный язык.
Речь идет о двух уязвимостях — CVE-2026-109618 и CVE-2026-109619, получивших общее название PHP2Shell. Их критичность оценивается в 9,2 из 10 по шкале оценки серьезности рисков CVSS, а некоторые исследователи дают и вовсе 10 из 10. Суть проблемы в том, что злоумышленник может удаленно выполнить произвольный код на сервере без какой-либо авторизации.
Две критические уязвимости, предположительно затрагивающие все версии PHP начиная с 5.4.0, оказались в публичном поле до планового выпуска исправлений. Срочные патчи были выпущены вечером того же дня.
Однако выпуск патчей еще не значит, что они автоматически починили уязвимость PHP во всем интернете. Для этого администраторы сайтов должны поставить обновление, а некоторые до сих пор даже не в курсе серьезности ситуации. Между тем потенциальных целей для атак действительно много из-за распространенности PHP.
PHP — широко используемый язык серверного программирования, на котором работают веб-сайты, веб-приложения, системы управления контентом, такие как WordPress, а также многие бэкэнд-сервисы в интернете. Учитывая роль PHP в обеспечении работы миллионов веб-серверов по всему миру, эта уязвимость может оказаться одной из самых значительных в 2026 году.
Однако ошибки появились в коде задолго до нынешнего инцидента. Одну из уязвимости заметили еще в 2024 году, но тогда не смогли превратить ее в надежный способ атаки. Позже команда Wiz использовала для анализа в том числе ИИ-модели Gemini 4 Argon и GPT-5.6 Sol. Они помогли быстрее разбирать сложные взаимосвязи в коде, проверять варианты атаки и в итоге довести работу до действующего сценария взлома, который сейчас и пофиксили разработчики.
По данным исследователей, эти уязвимости скрывались в коде PHP начиная как минимум с версии 5.4, вышедшей в 2012 году. За более чем десятилетие они могли быть использованы, но публично об этом не сообщалось.
Почему их не замечали раньше? Уязвимость PHP не выглядела как очевидная «дырка»: она возникала только при определенном сочетании сбоев в работе с памятью и последующих запросов. Даже обнаружив отдельную ошибку, исследователю еще нужно было понять, можно ли превратить ее в управляемую атаку. Для доказательства реальной опасности потребовалась сложная цепочка действий и множество проверок. И «маленькая помощь» от нейросетевых помощников.
Парадокс. Уязвимости видели, но не понимали, насколько это опасно, и не могли превратить теоретическую дыру в работающий эксплойт. А без доказанной эксплуатации проблема годами оставалась на периферии внимания.
Фактически для создания рабочего кода эксплуатации требовалась сложная последовательность шагов, которая приближалась к пределам того, что человек может сделать вручную. Именно поэтому AI-модели (GPT-5.6 Sol, Gemini 4 Argon) справились там, где классический статический анализ и экспертный глаз пасовали.
В чем заключается уязвимость PHP
Обе ошибки связаны с тем, как PHP обращается с памятью, когда обработка запроса неожиданно прерывается из-за ошибки или нехватки ресурсов. Когда сервер получает данные от пользователя, PHP временно размещает их в памяти. При определенных условиях обработка запроса может прерваться так, что часть данных очищается неправильно. После этого PHP может снова обратиться к данным, которые уже были удалены из памяти или не успели нормально записаться.
Ошибка срабатывает в момент, когда PHP исчерпывает лимит памяти. Это не штатный режим работы, а аварийная ситуация, которая случается редко и в разных конфигурациях выглядит по-разному. Разработчики и аудиторы просто не моделировали сценарий «аварийное завершение запроса с частично инициализированными внутренними структурами» как основной вектор атаки.
Этим могут воспользоваться злоумышленники, чтобы заставить сервер выполнить чужую команду. Один из путей атаки проходит через обычную функцию сайта — загрузку файлов через веб-форму.
Уязвимость связана с обработкой типа multipart/form-data, то есть стандартным способом загрузки файлов через веб-формы. Через переполнение памяти подобных сервисов злоумышленник может выполнить вредоносный код. Особенность данного дефекта заключается в том, что его нельзя закрыть простым обновлением кода сайта — необходимо установить патч для ядра PHP.
На некоторых серверах такой запрос может обработать сам PHP еще до того, как управление получит WordPress или другое приложение сайта. До установки обновления под удар могут попадать серверы, которые доступны напрямую из интернета.
Проблеме присвоен рейтинг серьезности 9,2, что подчеркивает ее критический характер. Команда разработчиков PHP выпустила обновления 8.5.12, 8.4.27, 8.3.36 и 8.2.35 для всех поддерживаемых версий, более старые версии продукта (8.1 и ниже) уже не поддерживаются, но подвержены уязвимости, поэтому рекомендуется обновление как минимум до 8.2. До тех пор, пока этот патч не будет установлен, любой сервер, подключенный к интернету и работающий под уязвимой версией PHP, может подвергаться атакам без аутентификации.
Как PHP2Shell отразился на интернете
21 октября организации начали отключать сайты, чтобы установить исправления. Меры затронули государственные учреждения, медицинские организации и другие ресурсы в нескольких странах Европы и за ее пределами. Часть своих систем временно отключили Wikimedia Foundation и Internet Archive.
Параллельно начались атаки. Cloudflare зафиксировала вредоносные запросы к системам своих клиентов еще в день раскрытия PHP2Shell. Атакующие меняли их, пытаясь обойти системы, которые отсеивают подозрительные запросы до того, как они попадут на сервер.
Amazon обнаружила попытку атаки еще 17 октября — за четыре дня до публичного раскрытия уязвимостей. После публикации исправлений готовые способы использования ошибки для взлома появились в открытом доступе в течение нескольких часов и почти сразу начали использоваться против тестовых систем Amazon.
К 22 октября Cloudflare наблюдала уже миллионы попыток атак через PHP2Shell. На время обновления сайты и сервисы отключали в Европе и Азии.
Под угрозой не автоматически любой сайт на PHP: возможность атаки зависит от версии и устройства сервера. Но язык используется очень широко, а старые сайты нередко работают на давно не обновлявшемся программном обеспечении.
© Коллаж: «Теперь вы знаете», создано при помощи нейросети
Как отреагировали в России
Российские хостеры и разработчики интернет-сервисов начали вводить ограничения еще до того, как исправления PHP успели разойтись по серверам. В большинстве случаев сайты не отключали целиком: компании временно закрывали именно те функции, через которые могла проходить атака.
- Timeweb временно отключил механизм
upload_progress, который используется при загрузке файлов, и начал обновлять версии PHP на своей инфраструктуре. Ограничение могло повлиять на работу отдельных форм и сервисов, принимающих файлы от пользователей. - Beget еще до выхода патчей ограничил
upload_progressна виртуальном хостинге и администрируемых серверах. Компания также предупредила, что может временно ограничить обработкуmultipart/form-data— запросов, через которые сайты обычно принимают загружаемые файлы. Из-за этого у клиентов могли перестать работать формы загрузки и некоторые другие функции сайтов. - «Битрикс» временно отключил загрузку файлов в части форм облачного «Битрикс24». Ограничения должны были оставаться до установки исправлений PHP и завершения проверки инфраструктуры. Для пользователей облачного сервиса обновлением серверов занималась сама компания.
- NetAngels пошел по другому пути: для поддерживаемых версий PHP провайдер сразу установил исправления. Но для PHP 5.4 и 5.5, для которых готовых патчей не было, компания предупредила, что будет вынуждена закрыть загрузку файлов через
multipart-запросы. Пользователям PHP 7.0–7.3 и 8.0–8.1 рекомендовали перейти на версии, для которых исправления уже доступны. - «Рег.ру» также временно ограничил загрузку файлов из-за уязвимостей PHP. Это тот же тип защитной меры: вместо полного отключения клиентских сайтов провайдер перекрывает функцию, через которую может проходить опасный запрос, пока серверы не обновлены.
По данным аналитического портала W3Techs, на PHP работают 90,8% сайтов с контентом на русском языке.
22 октября Центр кибербезопасности при ФСБ (Национальный координационный центр по компьютерным инцидентам, он же НКЦКИ) предписал критической инфраструктуре — а это целый ряд компаний, от систем госорганов и банков до медицинских, транспортных, энергетических и других — следовать той же логике и временно отключать сайты, если обновить PHP быстро невозможно.
С аналогичными рекомендацими выступили компании кибербезопасности «Лаборатория Касперского», «1С-Битрикс» и «Гарда».
В зоне наибольшего риска сейчас находятся сайты, созданные на популярных CMS — системах управления контентом, позволяющих редактировать содержимое веб-ресурса без необходимости вручную писать код. Под массовые CMS у злоумышленников уже запущены и отлажены вредоносные скрипты. Кастомные системы управления контентом тоже находятся под угрозой, поскольку некоторые атакующие запускают рой ИИ-агентов, который пробует эксплуатировать PHP-уязвимость на самописных ресурсах.
ИИ-агент — система, которая может не только отвечать текстом, но и сама выбирать следующие действия и запускать подключенные программы и инструменты. Уже известны несколько групп, которые передавали Claude Code часть работы во время настоящих атак: агенты выбирали следующий шаг, запускали нужные программы и продолжали атаку с учетом результата предыдущего действия.
PHP2Shell заставил специалистов задуматься не только об этой конкретной уязвимости. Кейс в очередной раз наглядно показал, как ИИ меняет сам поиск сложных ошибок: задачи, на которые раньше требовались месяцы ручной работы, теперь можно разбирать заметно быстрее и меньшими силами. А значит, старый код, который годами считался слишком сложной целью, становится доступнее для анализа.
В этот раз уязвимость PHP нашли специалисты по кибербезопасности и передали информацию разработчикам PHP. Но те же инструменты могут использовать и атакующие. Поэтому после PHP2Shell вопрос уже не только в том, сколько похожих ошибок еще скрывается в старом коде, но и в том, кто обнаружит следующую первым.
В чем реальная опасность
По словам экспертов, после взлома последствия могут выйти далеко за пределы самого сайта.
В случае успешной эксплуатации эта уязвимость PHP может привести к удаленному выполнению кода — одной из самых серьезных форм кибератак. На практике злоумышленники могут потенциально запустить вредоносный код на уязвимых системах, в том числе развернуть веб-оболочки, тем самым получив контроль над уязвимыми серверами.
Веб-оболочка — скрытый инструмент управления, который можно оставить на взломанном сервере, чтобы затем возвращаться к нему удаленно. Так что в результате успешной атаки хакеры могут не только взломать сервер, но и закрепиться на нем.
Одна из ошибок также может привести к утечке данных из памяти работающего сервера. Там могут находиться пароли, ключи доступа и токены — цифровые ключи, с помощью которых сайты и программы подтверждают, что пользователь или другой сервис уже прошел авторизацию. Если такие данные уже украдены, установка обновления не сделает их снова безопасными.
Масштаб таких атак зависит в том числе от того, насколько быстро владельцы сайтов установят исправления. Серверы, которые были открыты в интернет до обновления, нужно проверять на следы уже произошедшего взлома. В России речь идет о десятках тысяч потенциально затронутых ресурсов.
Когда уязвимость находится не в конкретном плагине или приложении, а в самом ядре языка, под удар попадает вся экосистема — от блога начинающего пользователя до правительственного портала. В России, по оценкам BI.ZONE, в зоне риска оказались около 50 тысяч сайтов.
Инциденты такого рода могут быстро распространиться по всему глобальному киберпространству. По этой причине реакция должна быть немедленной и решительной.
Что делать прямо сейчас
Если вы владелец или администратор сайта, первым делом нужно выяснить, используется ли PHP на сервере и какая версия установлена. Если сайт работает на обычном хостинге — то есть на сервере сторонней компании, которая сама занимается его обслуживанием, — стоит проверить уведомления хостера и убедиться, что он в курсе проблемы и уже установил обновление.
Для версий PHP, которые разработчики еще поддерживают, исправления вышли в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Если используется PHP 8.1 или более старая версия, понадобится перейти как минимум на поддерживаемую ветку 8.2 либо установить исправление, если его отдельно выпустил поставщик серверной системы. Старый сайт после такого перехода может потребовать проверки на совместимость.
Обновлять нужно именно PHP. Установка свежей версии WordPress, Drupal, Joomla, «1С-Битрикс» или другой системы управления сайтом эту ошибку не исправляет.
Если быстро установить исправление невозможно, лучше временно убрать такой сервер из публичного доступа. Именно с такими рекомендациям 21 октября обратились к интернет-компаниям кибербезопасники, что и повлекло веерное отключение целого ряда сервисов. К вечеру 22 октября большая часть уже восстановила работу, однако обновление всех потенциально уязвимых сайтов потребует времени, которым могут воспользоваться и киберпреступники.
Отключение сайта — это не лечение, а способ выиграть время, когда патч еще не установлен, а риск уже существует. В целом, это нормальная практика в инфобезопасности.
Дополнительную защиту может дать WAF — межсетевой экран для веб-приложений. Такая система проверяет входящие на сайт запросы и блокирует подозрительные до того, как они достигнут сервера. Но WAF не заменяет обновление PHP.
После установки исправления стоит проверить, не появились ли на сервере неизвестные программы или измененные файлы, а также просмотреть системные журналы — записи о том, что происходило на сервере. Если есть признаки взлома, нужно заменить пароли, ключи и токены доступа, которыми мог завладеть атакующий.
Для важных данных нужна актуальная резервная копия, которая хранится отдельно от самого сервера.
Если инфраструктура сайта зависит от PHP, исправление следует установить, поскольку оперативное устранение уязвимости будет иметь решающее значение для минимизации риска. Владельцам сайтов также следует сделать резервные копии и перенести важную информацию в другое место.
Ну а тем, кто пока по каким-то причинам не может обновиться оперативно, стоит все-таки временно отключить сайт. Некоторые, конечно, проигнорируют это из соображения «да кому мы нужны». Однако не стоит забывать: киберпреступники с нейросетями стали чудовищно продуктивны и в поисках уязвимостей и лазеек уже давно не перебирают сайты вручную по приоритету. Так что широким бреднем могут затронуть и мелкую рыбу.
PHP2Shell показал, что годы проверок еще не означают, что из старого кода выжали все опасные ошибки. ИИ позволяет быстрее разбирать уязвимости, которые раньше было слишком долго и дорого доводить до рабочего способа атаки. Пока в этой истории первыми оказались исследователи. В следующий раз такой гарантии нет.