В PHP обнаружены две критические дыры - как защититься?

 Ситуация абсолютно реальна и является одним из самых серьезных инцидентов в сфере кибербезопасности. Уязвимости получили кодовое имя **PHP2Shell** (CVE-2026-109618 и CVE-2026-109619) и максимальную оценку опасности CVSS 9.2 (Critical) [[34]]. 


Поскольку уязвимость находится на уровне ядра интерпретатора PHP, она срабатывает на этапе парсинга HTTP-запроса, **до** того, как начнет выполняться код любой CMS (WordPress, 1С-Битрикс, OpenCart и др.) или фреймворка [[28]]. Это делает традиционные WAF и плагины безопасности внутри приложений практически бесполезными.


Вот пошаговый технический план действий по закрытию этой уязвимости, разделенный по сценариям использования.


### 1. Если у вас актуальные версии PHP (8.2, 8.3, 8.4, 8.5)

Официальные патчи уже выпущены (версии 8.2.35, 8.3.36, 8.4.27 и 8.5.12) [[47]]. 

**Действие:** Немедленно обновите пакеты через менеджер ОС и перезапустите сервис.

Для Ubuntu/Debian:

```bash

sudo apt update

sudo apt install --only-upgrade "php8.*" php-fpm

sudo systemctl restart php*-fpm

```

Проверьте успешность обновления командой `php -v` [[40]].


### 2. Если у вас Legacy-версии PHP (5.6, 7.4, 8.0, 8.1)

Это самая проблемная зона, так как эти ветки находятся в статусе End of Life (EOL), и официальных обновлений от PHP Foundation для них не предусмотрено [[53]]. Однако есть два проверенных пути решения:


#### Вариант А: Экстренный харденинг (временная мера за 2 минуты)

Этот метод не исправляет код, но ломает цепочку эксплуатации эксплойта, отключая его триггеры (переполнение памяти при парсинге multipart и использование session upload progress).

В конфигурации PHP (`php.ini` или в конфиге конкретного пула PHP-FPM, например `/etc/php/7.4/fpm/pool.d/www.conf`) добавьте:

```ini

session.upload_progress.enabled = 0

memory_limit = -1

```

*Важно:* После применения настроек обязательно перезапустите PHP-FPM или Apache. Учтите, что `memory_limit = -1` снимает ограничение на потребление памяти одним запросом, поэтому за этим нужно следить до момента полного обновления [[53]].


Если на сайте не требуется загрузка файлов пользователями, более надежный способ – блокировать такие запросы на уровне веб-сервера. Для **Nginx**:

```nginx

if ($http_content_type ~* "multipart/form-data") {

    return 403;

}

```

Для **Apache**:

```apache

RewriteEngine On

RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]

RewriteRule ^ - [F]

```


#### Вариант Б: Фундаментальное решение (бэкпорт патча)

Сообщество уже отреагировало на утечку. Существуют открытые репозитории (например, `Anton-Barinov/php2shell-patches`), которые предоставляют готовые скрипты для компиляции патченных версий PHP 5.6 и 7.4 в изолированную директорию (например, `/opt/php-7.4-patched`) [[40]]. Это позволяет применить исправление, не ломая системный пакетный менеджер и не обновляя весь стек приложения.

Кроме того, популярные сторонние репозитории, такие как `sury.org` (Ondřej Surý) для Debian/Ubuntu, уже начали поставлять бэкпорты исправлений вплоть до PHP 5.6 [[65]].


### 3. Если вы используете управляемый хостинг

Если у вас нет root-доступа к серверу, вы не сможете применить патч самостоятельно. 

**Действие:** 

1. Немедленно откройте тикет в службе поддержки хостинга с требованием обновить PHP или применить бэкпорт.

2. Если хостинг не реагирует, временно переведите сайт в режим обслуживания (статическая HTML-страница) или отключите прием POST-запросов, пока провайдер не устранит угрозу [[53]].


### 4. Особый случай: Панели управления (HestiaCP, ISPmanager и др.)

Панели часто используют собственный изолированный PHP-бинарник (например, `hestia-php`). Даже если вы обновили системный PHP для клиентских сайтов, сама панель управления может оставаться уязвимой. Необходимо применить настройки харденинга (Вариант А) specifically к конфигурационному файлу `php.ini` самой панели и перезапустить ее сервис [[40]].


### Резюме

"Окно защитника" было нарушено из-за утечки инструмента PHP2Shell, и массовые автоматизированные сканирования уязвимых серверов уже идут [[26]]. Не полагайтесь на плагины безопасности внутри CMS. Фундаментальное решение требует обновления или патчинга самого интерпретатора PHP на уровне операционной системы. 


Если у вас есть конкретная версия PHP или стек технологий (например, связка с определенной панелью управления), я могу дать более точную инструкцию по сборке изолированного бинарника или настройке веб-сервера.

Comments

Popular posts from this blog

но как конкретно они могут плучить доступ к моему сайту на WordPress?

60 запретных стоп-слов - Выяснить уровень СПАМности рассылки