Бесплатная консультация

Опишите задачу или цель. Отвечу с практическим следующим шагом — бесплатно, без обязательств.

Или выберите время в Calendly

21 октября вышли PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Они закрывают две дыры, CVE-2026-109618 и CVE-2026-109619. Чужой человек без логина может выполнить на сервере свой код: забрать базу и пароли, поставить лишнее, разослать почту от имени сайта.

Дыра в самом PHP. Обновление WordPress, Joomla, MODX, Битрикс, Laravel, Symfony или Yii2 её не закрывает.

Где PHP отдаёт лишнее

Под ударом PHP, который отвечает на веб-запрос: PHP-FPM, Apache с mod_php, php-cgi, LiteSpeed.

Где сайтНа 22 октября
Обычный хостинг, PHP ведёт хостерПатч уже стоит. VPS, где PHP ставите вы, сюда не входит.
Сайт открывается через CloudflareИзвестные запросы режет WAF. Заход на голый IP сервера этот фильтр обходит.
Свой серверСтарый PHP, пока пакет не обновлён и процессы не перезапущены.

Что поставить на сервере

Сначала поймите, чей это PHP.

Обычный хостинг. Пакет вы сами не поставите. Напишите в поддержку: «PHP обновлён после 21.10, CVE-2026-109618 и CVE-2026-109619?» Если в панели можно выбрать версию, берите 8.3 или новее.

Свой сервер. Обновите пакеты PHP и перезапустите его. Без перезапуска в памяти остаётся старый код. Версию в командах подставьте свою. Если PHP живёт внутри Apache, перезапустите Apache.

sudo apt update
sudo apt install --only-upgrade 'php8.3*'
sudo systemctl restart php8.3-fpm

На Ubuntu и Debian php -v часто показывает старый номер, а патч уже внутри пакета. Смотрите сборку: dpkg -l | grep php.

СистемаСборка с исправлением
Ubuntu 24.048.3.6-0ubuntu0.24.04.13
Ubuntu 22.048.1.2-1ubuntu2.28
Ubuntu 26.048.5.4-0ubuntu1.5
Debian 138.4.27-1~deb13u1
Debian 128.2.35-1~deb12u1

Если PHP не из дистрибутива, а upstream, в версии должны быть 8.5.12, 8.4.27, 8.3.36 или 8.2.35.

21 октября две ловушки повторялись у тех, кто обновлялся сразу. Зеркало хостера отстаёт от security.ubuntu.com: apt пишет «обновлять нечего», хотя патч уже вышел. Репозиторий Ondrej Sury (ppa:ondrej/php, через него ставят PHP панели вроде HestiaCP) отдавал сборки с задержкой, Launchpad отвечал 503. Повторите через час. Remi (CentOS, Alma, Rocky) в день выпуска обновление не обещал.

Ветки 7.4, 8.0 и 8.1 сам проект PHP больше не чинит. У Ubuntu 22.04 свой 8.1 закрыт сборкой из таблицы. Для Debian 11 и старше бесплатной сборки нет. Это повод переехать на 8.3 или 8.4. При переезде пропишите date.timezone в php.ini: новая ветка не берёт пояс из системы. Модули ionCube собраны под конкретный PHP и на новой версии не встанут.

Если обновиться сегодня нельзя, дыру можно только сузить. В php.ini или в конфиге пула FPM (в .htaccess и через ini_set это срабатывает слишком поздно):

session.upload_progress.enabled = 0

Потом перезапуск. Так закрывается подтверждённый путь только одной из двух дыр. Если на сайт ничего не загружают, post_max_size = 8M сужает вторую. Это не замена пакету.

Cloudflare оставьте включённым. Он режет известные запросы. PHP на сервере всё равно нужно обновить.

Как это выглядит в проде

  1. В панели PHP 8.2 или 8.3. Исправленные сборки вышли 21 октября.
  2. Хозяин читает «хостинг уже обновился» и останавливается. Фраза была про тариф, где PHP ведёт хостер.
  3. Домен за Cloudflare, известные запросы умирают на краю. Запрос на голый IP туда не попадает.
  4. Вечером обновляют WordPress или Битрикс. Процесс php-fpm остаётся прежним.
  5. Пакет поставили и не перезапустили. В памяти старый код.
  6. apt сказал «нечего обновлять», потому что зеркало отстало.

Держится так: пакет с исправлением, процессы перезапущены, версия прочитана у того PHP, который отвечает сайту.

Проверка на этой неделе

  1. Без консоли: одно письмо в поддержку про обновление после 21.10. Если на сервер заходите вы, проверка на вас.
  2. Сверьте сборку пакета с таблицей. Старый номер в php -v на Ubuntu ещё не значит, что дыра на месте.
  3. После установки перезапустите PHP и откройте сайт.
  4. Если домен за Cloudflare, трафик должен идти через него, а не на голый IP. PHP обновите всё равно.
  5. Если пакет только утром: session.upload_progress.enabled = 0 и перезапуск. Само обновление поставьте на ближайшее окно.

Если сервер ваш и закрыть нужно сегодня, оставьте заявку. Заказать консультацию