Главная / Журнал / Безопасность
26.10.2026Безопасность7 мин чтения

PHP2Shell: две критические уязвимости PHP — что делать вашему сайту

Коротко

  • 21 октября 2026 в PHP вышли две критических уязвимости — CVE-2026-109618 и CVE-2026-109619. Оценка тяжести — 9,2 из 10.
  • Обе позволяют злоумышленнику выполнить свой код на сервере без пароля — то есть полностью взять сайт под контроль.
  • Исправленные версии: 8.5.12, 8.4.27, 8.3.36, 8.2.35. Ветки PHP ниже 8.2 официальных релизов больше не получают.
  • Попытки эксплуатации зафиксированы ещё до выхода исправлений — проверьте версию PHP сегодня.
  • Не уверены, какая версия PHP у вас? Проверим бесплатно за 1 рабочий день.

Что такое PHP2Shell и чем это опасно

В середине октября исследователи обнаружили две критические уязвимости PHP — в самом языке и серверном движке, на котором работают WordPress, 1С-Битрикс, Joomla и большинство сайтов Беларуси. В прессе их назвали PHP2Shell (буквально «из PHP — в оболочку управления сервером»); официальные названия — CVE-2026-109618 и CVE-2026-109619. Обе оценены в 9,2 балла из 10 по шкале CVSS 4.0 — уровень Critical.

Суть в одном: злоумышленник может выполнить произвольный код на вашем сервере, не зная паролей и не проходя авторизацию.

Что это значит для владельца сайта на практике:

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

Важно понимать: уязвимость — не в вашей админке и не в плагине, а в самом движке PHP. Обновление сайта «на всякий случай» её не закрывает — закрывает только обновление PHP. Размер и популярность сайта при этом не имеют значения: сканеры проверяют адреса в интернете автоматически, и попасть в выборку можно, даже если сайт посещают десять человек в день.

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

Для вашего программиста

CVE-2026-109618 связана с нарушением обработки нехватки памяти (запрос прерывается, пока внутреннее состояние PHP не инициализировано, а очистка использует это состояние). CVE-2026-109619 — с устаревшим состоянием запроса, сохранённым между запросами одного воркера; подтверждённый путь эксплуатации — через механизм session.upload_progress.

Как проверить, какая версия PHP у вашего сайта

Самый простой способ — посмотреть в панели хостинга: там всегда указана версия PHP для сайта. В WordPress это же видно в разделе «Инструменты → Здоровье сайта → Информация» (пункт «Версия PHP»).

Дальше — сверка. Ваша версия уязвима, если она ниже одной из исправленных:

Ветка PHPИсправленная версия
8.58.5.12
8.48.4.27
8.38.3.36
8.28.2.35
8.1 и старшеофициальных исправлений нет

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

Проверка версии PHP командой php -v в терминале сервера
Так выглядит проверка версии PHP на сервере

Для вашего программиста: команды проверки

# версия PHP в командной строке
php -v

# включена ли временная мера (см. ниже)
php -i | grep -i "session.upload_progress.enabled"

Проверяйте именно ту версию, через которую работает сайт (веб-SAPI), а не только CLI: на серверах они часто отличаются. Любая версия ниже 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 считается небезопасной.

Не уверены, какая версия PHP у вас?

Проверим бесплатно за 1 рабочий день: посмотрим версию, покажем, что устарело, и скажем, сколько займёт обновление.

Проверить версию →

Что сделать прямо сейчас, если обновиться пока не получается

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

Честно о границах этой меры:

  • она не заменяет обновление — это костыль на время;
  • закрывает подтверждённый путь одной из двух уязвимостей, но не все возможные;
  • от CVE-2026-109618 она не защищает вообще.

Для вашего программиста: временная мера

# Debian 12 / Ubuntu 24.04 / BitrixVM 9
# 1. Включить в СИСТЕМНОМ php.ini (не в .user.ini — PHP не гарантирует его применение)
sudo nano /etc/php/8.3/fpm/php.ini
#   session.upload_progress.enabled = Off

# 2. Перезапустить обработчик запросов
sudo systemctl restart php8.3-fpm

PHP предупреждает: настройку нужно менять в конфигурации, которая действует до разбора запроса, и перезапускать воркеры; ini_set() и .user.ini для этого не подходят. Полное решение — только обновление.

Как обновиться правильно

Порядок одинаков для любого сайта:

  1. Бэкап — файлы и база, чтобы откатиться за минуты.
  2. Проверка на стенде — копия сайта на тестовом сервере или в локальном окружении.
  3. Обновление в окно обслуживания — 15–30 минут, когда можно закрыть приём заказов.
  4. Проверка — главная, форма заявки, каталог, оплата, письма.

Где обновляться:

  • хостинг с поддержкой — напишите в поддержку, они поднимут ветку за вас (обычно бесплатно);
  • BitrixVM — панель виртуальной машины → обновление окружения, версии PHP выбираются там же;
  • свой сервер (VPS) — пакеты дистрибутива, команды ниже.

Если сайтом занимается поддержка хостинга — напишите им простой запрос: «прошу обновить PHP до последней безопасной версии ветки 8.x для моего сайта, после обновления проверю работоспособность». На большинстве хостингов Беларуси это бесплатно и занимает рабочий день. Если сайта нет на поддержке — напишите нам: подскажем, что именно сказать администратору, или сделаем сами.

Для вашего программиста: обновление на Debian 12 / Ubuntu 24.04

sudo apt update
apt list --upgradable 2>/dev/null | grep -i '^php'
sudo apt install --only-upgrade php8.3-fpm php8.3-cli php8.3-mysql
sudo systemctl restart php8.3-fpm
php -v

Про старые ветки. PHP выпустил минимальные исправления в исходниках для 7.4, 8.0 и 8.1 — но ставить их обычному сайту может только хостер, пакетами дистрибутива. Для веток старше 7.4 исправлений нет вообще: только переход на поддерживаемую версию.

Почему обновление WordPress или Битрикс не заменяет обновление PHP

CMS и PHP — два уровня. Обновление WordPress или 1С-Битрикс чинит их собственный код, а уязвимость живёт ниже, в интерпретаторе. Это как обновить приложение в телефоне, когда нужна прошивка самой системы.

Поэтому правильно делать и то, и другое: сначала PHP до исправленной версии, затем CMS до свежей версии. Если CMS устарела на несколько лет — это уже отдельная задача: смотрите аудит безопасности и администрирование серверов.

Сколько стоит обновление PHP

Ориентировочные цены на октябрь 2026 года. Точную стоимость называем после бесплатной оценки сайта: версия CMS и PHP, доработки, сервер.

УслугаОриентир цены
Срочное обновление PHP на сервере / VPS (1 сайт, поддерживаемая ветка)от 150 до 350 BYN
Переход PHP 7.x → 8.x с исправлением кода сайтаот 650 до 3 200 BYN
Аудит безопасности одного сайта с отчётомот 450 до 1 000 BYN
Ежемесячная поддержка: обновления, бэкапы, мониторингот 400 до 800 BYN/мес

FAQ

Как понять, что сайт уже взломали?

Частые признаки: сайт перенаправляет посетителей на чужие страницы, в поиске появилось «Взломано» или «This site may be hacked», в папке сайта появились незнакомые файлы, хостинг прислал жалобу на вредоносный код. Но компрометация может быть незаметной месяцами — единственный надёжный способ узнать наверняка — проверка, см. аудит безопасности.

У меня PHP 7.x — значит, сайт уже взломан?

Нет. Старая версия — это открытая дверь, но не факт, что кто-то вошёл. Ветки 7.x официальных обновлений не получают, поэтому дверь остаётся открытой: чем дольше ждёте, тем выше шанс. Решение — переход на поддерживаемую ветку 8.x.

Обновил WordPress — этого недостаточно?

Нет. Критическая уязвимость PHP 2026 года — в самом движке, а не в вашей CMS. Сначала обновите PHP до исправленной версии, потом CMS. В обратном порядке обновление CMS не снижает риск.

Сколько времени занимает обновление PHP?

Срочное обновление на сервере — от 2 часов: бэкап, обновление, проверка ключевых страниц. Если после перехода на 8.x что-то в коде перестало работать — падение на исправление может занять от 8 часов, поэтому перед обновлением мы всегда проверяем сайт на стенде.

Что будет, если ничего не делать?

Честно: ничего не происходит «завтра». Но попытки эксплуатации этих уязвимостей зафиксированы ещё до выхода исправлений — автоматическое сканирование идёт по всем интернетам, и ваш сайт в этой выборке, пока он на уязвимой версии. Риск накапливается со временем, а не исчезает.

Обновим PHP без простоя

Проверим версию, составим план и обновим в согласованное окно — с бэкапом и откатом.

Оставить заявку →

Что мы сделаем

  1. Проверим бесплатно — версию PHP, CMS и сервера, что устарело и чем грозит. 1 рабочий день.
  2. Составим план — что обновлять, в каком порядке, сколько это займёт. Цена фиксируется до старта.
  3. Обновим без простоя для бизнеса — в согласованное окно, с бэкапом и откатом на случай проблем.
  4. Останемся на связи — по желанию: мониторинг, бэкапы и обновления по абонементу.

Telegram: +375 29 680-04-17 · Позвонить: +375 29 680-04-17

Связаться

Напишите.
Мы на смене.

Быстрая заявка

Коротко: «упал сайт», «нужен админ», «хотим аудит» — остальное спросит инженер.

Тема
Написать инженеру →