Looking GlassБлогКонтакты
DLine Media
КорзинаLoading...
ГлавнаяБлогPHP2Shell: критическая уязвимость CVE-2026-109618 угрожает PHP-серверам

PHP2Shell: критическая уязвимость CVE-2026-109618 угрожает PHP-серверам

22.10.2026
8 минут
Содержание
  • В чём заключается опасность?
  • Какие версии PHP уязвимы?
  • Как проверить свой сервер?
  • Что делать владельцам сайтов и серверов?
  • 1. Как проверить версию PHP на сервере?
  • 2. Как обновить PHP до безопасной версии?
  • 3. Как перезапустить PHP-FPM после обновления?
  • 4. Как проверить журналы сервера на подозрительную активность?
  • 5. Что делать, если обновить PHP прямо сейчас невозможно?
  • Как дополнительно проверить сервер на PHP2Shell?
  • Вывод
  • Критическая уязвимость PHP2Shell (CVE-2026-109618): какие версии PHP под угрозой, как проверить сервер, установить обновления и защитить VPS/VDS.
    21 октября 2026 года специалисты по информационной безопасности раскрыли две критические уязвимости в PHP — CVE-2026-109618 и CVE-2026-109619, получившие общее название PHP2Shell.
    Обе уязвимости получили оценку критичности 9,2 из 10 по шкале CVSS 4.0. При определённых условиях они позволяют злоумышленникам удалённо выполнять произвольный код на сервере без авторизации.
    Под угрозой находятся сайты, веб-приложения и серверы, использующие уязвимые версии PHP, в том числе проекты на WordPress, Laravel, Drupal и Joomla.

    В чём заключается опасность?

    Смысл уязвимости CVE-2026-109618 завязан на некорректной обработке ошибок, говорящих о нехватки оперативной памяти (Out of Memory) внутри PHP.
    Злоумышленник может отправить специально сформированный HTTP-запрос, который вызовет ошибку выделения памяти. Соответственно в определённых условиях PHP некорректно завершает обработку такого запроса, что и может привести к повреждению состояния памяти и выполнению постороннего кода.
    Особенно опасно то, что для эксплуатации подтверждённого сценария не требуется авторизация, а атака может происходить ещё до запуска кода самого веб-приложения.
    Успешная эксплуатация может привести к:
    • Получению несанкционированного доступа к серверу.
    • Краже конфиденциальных данных.
    • Изменению файлов сайта и внедрению вредоносного кода.
    • Нарушению доступности веб-приложений.

    Какие версии PHP уязвимы?

    Разработчики PHP выпустили исправления 21 октября 2026 года.
    Ветка PHPВерсия с исправлениемPHP 8.58.5.12PHP 8.48.4.27PHP 8.38.3.36PHP 8.28.2.35PHP 8.1 и старшеНе поддерживаются основным проектом PHP
    Системам, использующим более ранние версии, рекомендуется перейти на поддерживаемую ветку PHP. Исключением являются только те дистрибутивы, для которых поставщик выпустил отдельные исправления безопасности.

    Как проверить свой сервер?

    Для проверки был опубликован открытый инструмент php2shell-audit, позволяющий провести аудит PHP-окружения.
    GitHub: https://github.com/arifulislamat/php2shell-audit
    Инструмент проверяет установленные версии PHP, наличие исправлений, конфигурацию сервера и отдельные признаки возможной компрометации. При этом он не использует эксплойты и не пытается эксплуатировать уязвимость.
    Важно: удалённая проверка сайта не всегда позволяет достоверно определить версию PHP. Наиболее точный результат достигается только при проверке непосредственно на сервере.

    Что делать владельцам сайтов и серверов?

    Для защиты от CVE-2026-109618 (PHP2Shell) необходимо проверить используемые версии PHP, установить обновления безопасности и убедиться, что все серверные процессы работают на исправленной версии.
    Ниже представлена инструкция для серверов Ubuntu и Debian. Она подойдёт в том числе владельцам VPS/VDS, самостоятельно администрирующим свои серверы.

    1. Как проверить версию PHP на сервере?

    Первым делом подключитесь к серверу по SSH и выполните команду:
    php -v
    Команда покажет версию PHP, установленную для работы через командную строку (CLI).
    Пример результата:
    PHP 8.4.26 (cli)
    В данном примере используется версия PHP 8.4.26, которая требует обновления до 8.4.27 (таблица выше) или установки исправления от поставщика дистрибутива.
    Однако важно учитывать, что PHP CLI и PHP, обрабатывающий запросы сайта, могут использовать разные версии.
    Чтобы проверить установленные PHP-пакеты, выполните:
    dpkg -l | grep -E '^ii  php'
    Для поиска запущенных процессов PHP-FPM используйте:
    ps aux | grep '[p]hp-fpm'
    Также проверьте конфигурацию Nginx или Apache, чтобы определить, какой обработчик PHP используется конкретным сайтом.
    Если приложения работают в Docker, версии PHP нужно проверить отдельно внутри соответствующих контейнеров:
    docker ps
    docker exec <container_name> php -v
    , где <container_name> названием или идентификатором контейнера.
    Важно: проверять необходимо все PHP-окружения: основные сайты, дополнительные приложения, PHP-FPM, контейнеры и панели управления. Обновление системного PHP не гарантирует автоматического обновления PHP внутри Docker или стороннего программного обеспечения!

    2. Как обновить PHP до безопасной версии?

    Разумеется для устранения CVE-2026-109618 разработчики PHP выпустили исправления для поддерживаемых веток (которые, опять же, представлены в таблице выше).
    Перед обновлением рекомендуется создать резервную копию конфигурации и важных данных, а также убедиться в совместимости приложения с выбранной версией PHP.
    На Ubuntu или Debian обновите информацию о доступных пакетах:
    sudo apt update
    Проверьте доступную версию PHP. Например, для ветки 8.4:
    apt policy php8.4-fpm
    Если репозиторий предоставляет исправленную версию, обновите соответствующие пакеты:
    sudo apt install --only-upgrade php8.4-cli php8.4-fpm php8.4-common
    При необходимости обновите остальные установленные модули PHP.
    После завершения проверьте результат:
    php -v
    php-fpm8.4 -v
    Если используемая версия PHP не получает исправлений от производителя или поставщика ОС, рекомендуется перейти на поддерживаемую ветку.
    Обратите внимание: некоторые дистрибутивы Linux внедряют исправления безопасности без изменения основной версии программного обеспечения. Поэтому при проверке необходимо учитывать не только номер PHP, но и информацию о безопасности пакета от поставщика дистрибутива.

    3. Как перезапустить PHP-FPM после обновления?

    После установки исправлений необходимо убедиться, что серверные процессы используют обновлённую версию PHP.
    Если используется PHP-FPM, выполните:
    sudo systemctl restart php8.4-fpm
    Проверьте состояние службы:
    sudo systemctl status php8.4-fpm
    Ожидаемый результат — состояние active (running).
    Для серверов с Apache и модулем mod_php может потребоваться перезапуск Apache:
    sudo systemctl restart apache2
    Если PHP работает внутри Docker, необходимо обновить образ контейнера, пересоздать контейнер и проверить версию PHP внутри него. Обычный перезапуск контейнера со старым образом не устраняет уязвимость.
    После обновления рекомендуется проверить доступность сайта, корректность обработки PHP-запросов и отсутствие новых ошибок в журналах.

    4. Как проверить журналы сервера на подозрительную активность?

    После обнаружения критической уязвимости рекомендуется проверить сервер на признаки возможной эксплуатации.
    Для просмотра последних ошибок Nginx используйте:
    sudo tail -n 100 /var/log/nginx/error.log
    Для Apache:
    sudo tail -n 100 /var/log/apache2/error.log
    Для просмотра событий PHP-FPM через systemd:
    sudo journalctl -u php8.4-fpm --since "24 hours ago"
    Обратите внимание на:
    • Аномально большое количество ошибок HTTP 500.
    • Повторяющиеся сбои PHP-процессов.
    • Сообщения об исчерпании памяти.
    • Подозрительные изменения файлов веб-приложения.
    • Неизвестные процессы и неожиданные сетевые соединения.
    Для проверки недавно изменённых PHP-файлов можно воспользоваться командой:
    find /var/www -type f -name "*.php" -mtime -1 -ls
    Она покажет PHP-файлы, изменённые за последние 24 часа. Путь /var/www необходимо заменить, если сайт расположен в другом каталоге.
    При обнаружении признаков атаки рекомендуется сохранить журналы и другие доказательства, ограничить доступ к затронутому серверу и провести расследование.
    Важно: ошибки в логах и изменения файлов сами по себе не подтверждают взлом. Для установления факта компрометации необходим дополнительный анализ.

    5. Что делать, если обновить PHP прямо сейчас невозможно?

    Если исправление временно недоступно, необходимо максимально ограничить потенциальные возможности эксплуатации.
    В первую очередь рекомендуется:
    1. Ограничить внешний доступ к затронутым приложениям, если это допускается бизнес-процессами.
    2. Проверить настройки WAF и действующие правила фильтрации HTTP-запросов.
    3. Отключить ненужные публичные сервисы и интерфейсы.
    4. Минимизировать привилегии процессов PHP и ограничить доступ к критическим файлам.
    5. Усилить мониторинг ошибок PHP, состояния процессов и подозрительных запросов.
    Дополнительные временные меры могут включать отключение session.upload_progress и изменение отдельных настроек PHP в соответствии с официальными рекомендациями разработчиков. Применять их следует после оценки влияния на приложение.
    Внимание: ни WAF, ни ограничения доступа, ни изменение конфигурации не являются полноценным исправлением PHP2Shell. Разработчики PHP подчёркивают, что надёжный способ устранить уязвимость — установить исправленную версию.

    Как дополнительно проверить сервер на PHP2Shell?

    Для дополнительного аудита можно воспользоваться открытым проектом php2shell-audit:
    https://github.com/arifulislamat/php2shell-audit
    Перед запуском стороннего инструмента на рабочем сервере внимательно изучите его исходный код и необходимые права доступа.
    Результаты автоматической проверки стоит использовать в дополнение к проверке установленных пакетов, конфигурации и официальных уведомлений безопасности.
    Регулярно обновляйте программное обеспечение, контролируйте конфигурацию серверов и проверяйте резервные копии. Эти меры помогают снизить риски эксплуатации не только PHP2Shell, но и других критических уязвимостей.

    Вывод

    PHP2Shell — это очередное напоминание о том, что безопасность веб-проектов зависит не только от качества исходного кода, но и от состояния серверной инфраструктуры. Даже надёжное приложение может оказаться под угрозой, если используемое программное обеспечение своевременно не обновляется.
    В DLine Media мы уделяем особое внимание надёжности и безопасности инфраструктуры. Наши решения VPS/VDS и Colocation позволяют компаниям размещать свои проекты на профессиональной серверной инфраструктуре, где можно гибко управлять окружением и своевременно внедряются все необходимые меры защиты.
    DLine Media — надёжная инфраструктура для вашего бизнеса
    Содержание
  • В чём заключается опасность?
  • Какие версии PHP уязвимы?
  • Как проверить свой сервер?
  • Что делать владельцам сайтов и серверов?
  • 1. Как проверить версию PHP на сервере?
  • 2. Как обновить PHP до безопасной версии?
  • 3. Как перезапустить PHP-FPM после обновления?
  • 4. Как проверить журналы сервера на подозрительную активность?
  • 5. Что делать, если обновить PHP прямо сейчас невозможно?
  • Как дополнительно проверить сервер на PHP2Shell?
  • Вывод
  • Другие статьи

    Нужна помощь в выборе?

    Если у Вас остались вопросы или нужна помощь в выборе, задайте вопрос в чате или по электронной почте
    Онлайн-чатМы всегда на связи!