10 сентября 2026 года Ubuntu Security выпустила USN-8743-1: закрыты три уязвимости в PHP 8.1, 8.3 и 8.5. Затронуты Ubuntu 22.04 LTS, 24.04 LTS и 26.04 LTS. 11 сентября LWN включил это уведомление в пятничную таблицу security-апдейтов. Для VPS с WordPress, nginx и PHP-FPM это не «ещё одна строка в дайджесте», а конкретные пакеты fpm/cli, которые крутят сайт.
Это security-апдейт пакетов дистрибутива, не новый мажор PHP и не смена ветки. Номер вроде 8.3.6-0ubuntu0.24.04.11 не значит, что Ubuntu внезапно перешла на другой апстрим. База та же, в ревизии ubuntu лежат патчи.
Откуда это известно
Первоисточник для этой заметки: пятничная сводка LWN Security updates for Friday от 11 сентября 2026. В таблице Ubuntu стоит USN-8743-1 на пакеты php8.1, php8.3 и php8.5, дата уведомления 10 сентября. Текст самого USN LWN перепечатал целиком на странице Ubuntu alert USN-8743-1. Официальная ссылка внутри того же текста: ubuntu.com/security/notices/USN-8743-1.
В той же пятничной таблице Ubuntu ещё USN-8571-2 (apache2, только 20.04), USN-8737-2 (glibc на 24.04), USN-8744-1 (линейка python2.7/python3.*), плюс beets, kissfft, libebml и linux-nvidia-6.17. Это другие уведомления. Ниже разбираю PHP, потому что на типичном сайте с WordPress именно он исполняет код. Debian в той же сводке закрыл libevent (DSA-6493-1) и ruby-rack (DSA-6492-1): к PHP на Ubuntu это не относится.
Что меняется на VPS с WordPress
Типичная схема: Ubuntu LTS, nginx, php-fpm, MariaDB или MySQL, WordPress. Сайт исполняет PHP в пуле FPM, не в CLI и не в модуле Apache, если вы сами его не ставили. Обновление из USN как раз про php8.x-fpm и php8.x-cli. Конфиг nginx трогать не нужно. Рестарт MariaDB «на всякий случай» тоже не нужен.
WordPress по умолчанию ходит в MySQL/MariaDB. CVE про расширение PostgreSQL бьёт только если на сервере реально используется php-pgsql. Это не повод игнорировать апдейт: в том же исходном пакете закрыты ещё phar и, на 26.04, bccomp(). Штатный путь, как пишет само уведомление: обычное обновление системы.
«Пакет вышел» и «он уже на всех продах» это разные вещи. Пока apt не подтянул security-карман и не обновил php*-fpm, на сервере старая сборка. Зеркало может быть живым, а пакет ещё нет.
Три CVE, три ветки PHP
По тексту USN-8743-1:
- CVE-2026-17543. PHP неверно обрабатывал экранирование обратного слэша в расширении PostgreSQL. Оценка вендора: атакующий может провести SQL-инъекцию. Для сайта на MariaDB это не тот вектор. Для кода, который ходит в Postgres через php-pgsql, это уже другой разговор.
- CVE-2026-17544. Некорректная обработка ввода в bccomp(). Оценка вендора: выход за границы записи, отказ в обслуживании или, возможно, выполнение кода. Только Ubuntu 26.04 LTS.
- CVE-2026-7260. Циклические символические ссылки в phar-архивах. Оценка вендора: неограниченная рекурсия и отказ в обслуживании. Ветки 22.04, 24.04 и 26.04.
Оценок CVSS, PoC и факта «уже бьют в дикой природе» в уведомлении нет. Я бы не делал из этого окончательный вывод про массовую эксплуатацию. Для прод-сайта достаточно закрыть пакеты и проверить, что FPM поднял новую сборку.
Какие пакеты и на каких релизах
В инструкциях USN перечислены такие версии. Сверяйте со своим релизом, не ставьте php8.5 на 24.04 «потому что новее».
- Ubuntu 26.04 LTS: php8.5, сборка 8.5.4-0ubuntu1.3. В списке: libapache2-mod-php8.5, php8.5-cgi, php8.5-cli, php8.5-fpm.
- Ubuntu 24.04 LTS: php8.3, сборка 8.3.6-0ubuntu0.24.04.11. В списке: libapache2-mod-php8.3, php8.3-cgi, php8.3-cli, php8.3-fpm.
- Ubuntu 22.04 LTS: php8.1, сборка 8.1.2-1ubuntu2.26. В списке: libapache2-mod-php8.1, libphp8.1-embed, php8.1-cgi, php8.1-cli, php8.1-fpm.
Исходные пакеты: php8.5, php8.3, php8.1. Launchpad для 8.5 Canonical указывает явно: php8.5 8.5.4-0ubuntu1.3. Остальные бинарники той же версии (если они установлены) обычно уезжают тем же apt upgrade. Отдельного пакета php-pgsql в перечне USN нет, выдумывать его не буду.
Что проверить руками
Команды для Ubuntu с systemd. Сначала релиз и то, какой PHP вообще обслуживает сайт. Не смешивайте 8.1, 8.3 и 8.5 без нужды: на 24.04 штатный пакет это 8.3, на 22.04 это 8.1, на 26.04 это 8.5.
cat /etc/os-release php -v php-fpm8.3 -v 2>/dev/null || php-fpm8.1 -v 2>/dev/null || php-fpm8.5 -v 2>/dev/null dpkg -l 'php8.*-fpm' 'php8.*-cli' 'php8.*-cgi' 'libapache2-mod-php8.*'
Политика apt покажет, есть ли уже security-сборка в кармане и какая версия установлена. Для 24.04 смотрите php8.3-fpm, для 22.04 php8.1-fpm, для 26.04 php8.5-fpm.
apt policy php8.3-fpm php8.1-fpm php8.5-fpm systemctl is-active php8.3-fpm php8.1-fpm php8.5-fpm nginx apache2 2>/dev/null
Если кандидат в Candidate уже 8.3.6-0ubuntu0.24.04.11 (или соответствующая сборка 8.1 / 8.5), обновление ставится штатно. Перед правкой пакетов на проде разумна копия сайта и базы, плюс снимок VPS, если хостер его даёт. Это не смена мажора PHP, но откат всё равно проще со снимка, чем «на глаз».
sudo apt update sudo apt upgrade
Уведомление формулирует это как standard system update. Точечно, без обновления всей системы сразу, можно поставить только перечисленные пакеты своей ветки. Пример для 24.04:
sudo apt install --only-upgrade php8.3-fpm php8.3-cli php8.3-cgi libapache2-mod-php8.3
На 22.04 те же имена с 8.1, на 26.04 с 8.5. Не копируйте строку 8.3 на чужой релиз.
После установки пакетные скрипты Ubuntu обычно перезапускают php-fpm сами. Имеет смысл проверить статус и версию, а не делать restart «на всякий случай». Reload пула достаточно, если сервис не подхватил бинарник. Nginx после этого не перечитывают: его конфиг не менялся. Если сайт на Apache с libapache2-mod-php, сначала синтаксис, потом reload, не restart всего httpd без нужды.
systemctl status php8.3-fpm --no-pager php-fpm8.3 -v # Apache, только если mod_php реально используется: sudo apache2ctl configtest sudo systemctl reload apache2
Ожидаемая строка версии: 8.3.6-0ubuntu0.24.04.11 на Noble, 8.1.2-1ubuntu2.26 на Jammy, 8.5.4-0ubuntu1.3 на 26.04. Если php -v и php-fpm8.x -v показывают разное, CLI и FPM стоят из разных контуров. Для WordPress важен FPM, который слушает сокет из конфига nginx.
Где обычно ломается
- Сторонний PPA (ondrej/php, сборки панели, WordOps). USN закрывает пакеты архива Ubuntu. Сборка 8.3.6-0ubuntu0.24.04.11 из кармана Ubuntu не обязана совпасть с php8.3 из PPA. Смотрите
apt policy: какой Origin у Candidate. - Несколько PHP на одном VPS. Сайт на 8.3, CLI в PATH на 8.1, cron ходит в другой бинарник. Обновили не тот пул, FPM сайта остался старым.
- Reload nginx вместо php-fpm. Nginx проксирует на сокет. Пока FPM не поднял новый бинарник, сайт исполняет старый PHP.
- Путаница MySQL и Postgres. CVE-2026-17543 про расширение PostgreSQL. Если php-pgsql не установлен и WordPress на MariaDB, этот конкретный вектор на сайте не открыт. Два других CVE от этого не исчезают.
- Ubuntu 20.04. В USN-8743-1 её нет. В пятничной таблице 20.04 всплывает в USN-8571-2 на apache2, это другое уведомление и другой пакет.
- Рестарт всей машины «чтобы точно». Для php-fpm это лишнее. Другое дело libc: в той же таблице LWN есть USN-8737-2 на glibc для Ubuntu 24.04, пакет libc6 2.39-0ubuntu8.9. Это уже не PHP. После libc процессы, которые держат старую библиотеку, живут до своего рестарта. Не смешивайте два USN в одну команду и не отключайте AppArmor, «чтобы завелось».
Если после апдейта PHP сайт отдаёт 502, смотрите сокет в nginx и статус пула, не firewall. Типичная схема: пул не поднялся, сокет исчез, nginx пишет connect() failed в error log.
sudo journalctl -u php8.3-fpm --since today --no-pager sudo tail -n 50 /var/log/nginx/error.log
Подставьте имя юнита своей ветки. Путь к логу nginx на конкретной панели может быть другим: сначала nginx -T и директива error_log.
Коротко по шагам
Для рабочего Ubuntu LTS с WordPress разумный порядок такой. Сначала понять релиз и какой php-fpm слушает сайт. Потом сверить Candidate в apt с номером из USN. Потом бэкап. Потом штатный upgrade пакетов своей ветки. Потом статус FPM и php-fpm8.x -v. Nginx трогать не нужно, если его конфиг не меняли. Kubernetes, Helm и «просто уйдите в облако» к этой рассылке не относятся.
10 сентября пакеты закрыли в архиве Ubuntu. На вашем VPS они появятся в тот момент, когда apt их увидит и вы их поставите. До этого в пятничной таблице LWN это только строка.