opened image

Критичні вразливості PHP: що робити та як захистити свій сайт

Вітаємо, шановні клієнти Zomro! У PHP виявлено дві критичні вразливості, які дозволяють зловмисникам віддалено виконувати код на сервері. Під загрозою перебувають сайти на PHP, зокрема WordPress, Bitrix і Drupal. Розповідаємо, яких заходів необхідно вжити для захисту сервера та чому важливо якомога швидше оновити PHP.
 

Що сталося?

 

У PHP виявлено дві критичні вразливості (CVE-2026-109618, CVE-2026-109619, CVSS 9,2 із 10). Вони дозволяють зловмисникам віддалено виконувати код на сервері.

 

Уразливим є будь-який сайт на PHP 5.4 або новішої версії зі стандартною конфігурацією, зокрема WordPress, WooCommerce, Bitrix, Drupal і самописні проєкти. Наявність форм для завантаження файлів на сайті не має значення.

 

Виправлення випущено 21 жовтня о 14:00 UTC (16:00 CET). Експлойти вже перебувають у відкритому доступі, а масові атаки очікуються одразу після публікації патчів.

 

До виходу патча

 

Виконайте такі дії:

 

  1. Перевірте версію PHP, яка обслуговує ваш сайт: у панелі керування або за допомогою команди:

    php -v

    Якщо на сервері встановлено кілька версій PHP, перевірте кожну з них.

  2. Створіть резервну копію або знімок сервера.

  3. Увімкніть тимчасовий захист. Він знижує ризик, але не усуває вразливість повністю:

  • У файлі php.ini встановіть:

    session.upload_progress.enabled = Off

    Для PHP-FPM використовуйте:

    php_admin_flag[session.upload_progress.enabled] = off

    Після цього перезапустіть PHP. За даними розробників PHP, лише цього налаштування недостатньо.
     

  • Заблокуйте multipart-запити на вебсервері:

    nginx:

    if ($http_content_type ~* "multipart") { return 403; }

    Apache:

    RewriteCond %{HTTP:Content-Type} multipart [NC]
    RewriteRule ^ - [F,L]

 

Увага! Завантаження файлів через форми та панелі адміністратора перестане працювати (медіафайли у WordPress, вкладення, імпорт). Використовуйте цей захід, лише якщо сайт може тимчасово обходитися без завантаження файлів.

 

  • Якщо ваш сайт працює через Cloudflare або інший WAF, переконайтеся, що правила захисту ввімкнені. Це додатковий рівень захисту, а не заміна оновлення PHP.

 

Після виходу патча

 

  1. Оновіть PHP до виправленої версії вашої гілки: 8.5.12, 8.4.27, 8.3.36, 8.2.35 або новішої.

  2. Якщо PHP встановлено з репозиторію вашого дистрибутива (apt/dnf), установіть оновлення, щойно вони стануть доступними. Користувачам репозиторію Remi слід враховувати, що в день випуску патчів оновлення можуть бути ще недоступними.

  3. Після оновлення перезапустіть PHP-FPM і вебсервер, а потім повторно перевірте версію PHP.

  4. Перевірте сайт на ознаки зламу: невідомі .php-файли (особливо в каталогах завантажень), нові облікові записи адміністраторів, невідомі завдання cron і незрозумілі стрибки навантаження на процесор.

 

Якщо ви використовуєте PHP 8.1 або старішу версію, розробники PHP не випускатимуть офіційних виправлень для цих гілок. Заплануйте перехід на PHP 8.2 або новішу версію (рекомендуємо PHP 8.4) і спочатку перевірте сумісність CMS і плагінів на тестовій копії. Залишайте тимчасовий захист увімкненим до завершення оновлення.