(Minghui.org) Протягом останнього тижня було виявлено серйозні вразливості в середовищах виконання PHP, Node.js та Go. Адміністраторам, які обслуговують сервери на базі цих технологій, зокрема тим, хто використовує популярні системи управління контентом, такі як WordPress, необхідно вжити заходів для захисту своїх сервісів від можливих кібератак.

Починаючи з 21 жовтня, міжнародні організації з кібербезпеки, а також офіційні розробники PHP і Node.js опублікували критично важливі бюлетені безпеки. У них повідомляється про вразливості, які дозволяють зловмисникам віддалено виконувати довільний код на сервері (RCE) або провокувати відмову в обслуговуванні (DoS).

Оскільки вразливості стосуються самих середовищ виконання мов програмування або вбудованих бібліотек, простого оновлення прикладних компонентів — наприклад, плагінів WordPress або пакетів npm — недостатньо. Для забезпечення безпеки необхідно оновити саме середовище виконання мови.

Уразливості в основних технологічних стеках

1. PHP (уразливість «PHP2Shell»)

Уразливості, що дозволяють виконати довільний код (Remote Code Execution):

– CVE-2026-109618, CVE-2026-109619 (оцінка за шкалою CVSS — 9,2, критичний рівень ризику);

– короткий опис: виявлено недоліки в механізмах управління пам’яттю та обробки глобального стану. Виникнення помилки нестачі пам’яті (OOM — Out-of-Memory) може призвести до пошкодження пам’яті або використання застарілих даних під час обробки наступних запитів тим самим робочим процесом (worker);

– сфера впливу: усі вебсайти та сервери на базі PHP, що не мають виправлень. Зловмисники можуть здійснювати атаки, не маючи жодних облікових даних чи привілеїв.

2. Node.js

Уразливості в декодері Brotli та компонентах мережевої безпеки включають CVE-2026-111497 (вихід за межі виділеної області пам’яті під час запису даних у декодері Brotli), а також низку вразливостей, пов’язаних із перевіркою автентичності в протоколах TLS та DNS.

– Короткий опис: вбудований декодер стиснених даних Brotli містить дефект, що призводить до запису даних за межами виділеної ділянки пам’яті; крім того, існує ризик обходу механізмів перевірки облікових даних та імен хостів;

– сфера впливу: обробка ненадійних даних, стиснутих за допомогою Brotli, зовнішні мережеві з’єднання, а також використання Node.js як проксі-сервера.

3. Мова програмування Go та пов’язані з нею фреймворки

Випущено виправлення безпеки для відповідних мережевих протоколів, стандартних бібліотек та поширених фреймворків з відкритим вихідним кодом, включаючи HTTP-проксі та інтерфейси управління мережею.

- Сфера впливу: хмарні сервіси (cloud-native), що використовують певні версії модулів Go або залежать від них.

Термінові заходи для системних адміністраторів

Традиційні перевірки залежностей (наприклад, сканування файлів package.json або composer.json) не дозволяють виявити вразливості в середовищі виконання (runtime). Необхідно перевірити версію середовища виконання, що використовується на сервері та/або в контейнерах.

Для застарілих версій середовищ виконання, підтримка яких припинена (наприклад, PHP версій нижче 8.2 або Node.js версій нижче 20), офіційні виправлення (патчі) більше не випускаються. Додатки, що працюють у таких непідтримуваних середовищах, повинні бути або оновлені до актуальної, підтримуваної версії, або ізольовані від мережі Інтернет.

За умови обмеженості ресурсів адміністратори серверів можуть виконати такі кроки (у зазначеному порядку):

1. Експрес-інвентаризація активів (перевірка версій)

Увійдіть на кожен сервер або в кожен контейнер і перевірте, чи стосується вразливість використовуваної версії середовища виконання мови програмування:

– для PHP: перевірте, чи поточна версія є більш ранньою, ніж версія, у якій вразливість уже усунуто (див. список нижче). Примітка: у деяких дистрибутивах Linux виправлення переносяться в старіші версії (backporting), тому версії, що передують 8.2, також можуть бути захищені. Ознайомтеся з офіційними анонсами або журналами оновлень для вашого дистрибутива;

- для Node.js: перевірте, чи не використовуєте ви одну з уразливих версій — 22.x, 24.x або 26.x.

2. Негайно оновіть до виправленої версії

Оновіть своє середовище до відповідної виправленої версії (див. нижче) та перезапустіть процес служби (наприклад, PHP-FPM або додаток Node), щоб очистити залишкові дані в пам’яті:

Виправлені версії PHP:

PHP 8.5.x — оновіть до 8.5.12 (або пізнішої версії);

PHP 8.4.x — оновіть до 8.4.27 (або пізнішої версії);

PHP 8.3.x — оновіть до версії 8.3.36 (або пізнішої);

PHP 8.2.x — оновіть до версії 8.2.35 (або пізнішої).

Виправлені версії Node.js:

Node.js 22.x — оновіть до 22.23.4 (або пізнішої версії);

Node.js 24.x — оновіть до 24.22.1 (або пізнішої версії);

Node.js 26.x — оновіть до версії 26.12.1 (або пізнішої).

Примітка: підтримка Node.js 20 та більш ранніх версій припинена. Вам необхідно якомога швидше перейти на версію, що підтримується.

3. Перезапустіть збірку контейнерів та образів

Якщо ви використовуєте Docker або інші хмарні контейнери, однієї лише зміни тегу недостатньо: необхідно перезапустити образ, щоб гарантувати оновлення базового середовища виконання та повторне розгортання служби.

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

Вище наведено лише загальний огляд. У кожному конкретному випадку технічні фахівці повинні оперативно виявити та усунути ризики з урахуванням особливостей своєї інфраструктури, щоб забезпечити інформаційну безпеку.