Два нещодавно розкриті CVE — CVE-2025-55182 у React Server Components та CVE-2025-29927 у Next.js middleware — відкривають шлях для віддаленого виконання коду (RCE) та обходу автентифікації в сучасних JavaScript-стеках. Один запит може спровокувати ці вразливості; лише конфігурація не зможе їх зупинити. Команди, які використовують React Server Components або Next.js middleware, повинні сприймати ці баги як критичні та негайно випускати патчі.
Чому шум у логах вводить в оману
Ми проаналізували логи edge-серверів за місяць роботи продуктивного сайту на Next.js. Набір містив 8 900 запитів, позначених як шкідливі. Майже кожен із них завершився невдачею на першому ж етапі. Найпоширенішим URL був /wp-admin/install.php, який зустрічався 518 разів, хоча сайт не використовує WordPress, не працює на PHP і не має жодних файлів WordPress.
Автоматизовані сканери генерують такий трафік. Вони засипають інтернет припущеннями, полюючи на:
- Секрети та конфігураційні файли — 64 % спроб
- PHP-панелі та шелли — 22 %
- Шляхи WordPress — 11 %
- Інструменти баз даних — 1 %
Велика кількість заблокованих запитів лише свідчить про те, що ви не використовуєте програмне забезпечення, на яке розраховують боти. Це не гарантує, що додаток, який ви насправді використовуєте, є безпечним.
Тихі атаки на рівні фреймворку
Коли зловмисник атакує додаток на Next.js, трафік виглядає як звичайні запити користувачів, використовуючи власні механізми фреймворку проти нього самого.
React2Shell (CVE-2025-55182)
Вразливість у React Server Components дозволяє зловмиснику впровадити спеціально підготовлене корисне навантаження (payload), яке сервер виконує як код. Результатом є повне віддалене виконання коду без необхідності обходу фаєрвола або фільтра вебзастосунків. Вразливість знаходиться всередині фреймворку; єдиним рішенням є оновлення до версії, що містить виправлення.
Middleware Authorization Bypass (CVE-2025-29927)
Next.js middleware може здійснювати перевірки безпеки на основі заголовків запиту. Цей CVE показує, що зловмисник може надати певний внутрішній заголовок і змусити middleware повністю пропустити ці перевірки. Зовні запит виглядає звичайним, що ускладнює його виявлення.
Обидва баги демонструють, що найбільш небезпечний трафік може змішуватися зі звичайним трафіком, уникаючи тривог, які фіксують гучні перевірки WordPress.
Що стоїть на кону
- Розробники, які вважають оновлення фреймворків необов'язковими, ризикують повним захопленням своїх серверів.
- Операційні команди, які покладаються на статичну конфігурацію для захисту стека, не можуть захиститися від коду, що виконується всередині самого фреймворку.
Практичний чек-лист для захисту
- Гігієна розгортання — не передавайте секрети у файлах на кшталт
.env. Зберігайте їх у змінних оточення, що надаються під час виконання, або у спеціалізованій системі керування секретами. - Мінімальна поверхня атаки — вимкніть функції фреймворку, які ви не використовуєте. Впровадьте сувору політику Content-Security-Policy, яка блокує завантаження неавторизованих скриптів.
- Швидке патчування — автоматизуйте конвеєр збірки (build pipeline), щоб нова версія фреймворку могла бути протестована та розгорнута протягом кількох годин після релізу. Ставтеся до оновлень безпеки як до регулярної частини циклу релізів, а не як до другорядного завдання.
На що звернути увагу далі
- Підпишіться на офіційні стрічки повідомлень про безпеку для React, Next.js та будь-яких інших бібліотек середовища виконання, від яких ви залежите.
- Інтегруйте сканери вразливостей, які розуміють метадані пакетів JavaScript, щоб щойно опублікований CVE викликав автоматичне сповіщення.
- Створіть конвеєр розгортання з можливістю швидкого відкату (rollback); якщо патч спричинить регресії, ви зможете швидко повернутися до попередньої версії, не залишаючи систему вразливою.
Урок зрозумілий: найгучніші атаки у ваших логах часто є відволікаючим маневром. Справжня небезпека ховається у фреймворку, якому довіряє ваш код. Тримайте стек лаконічним, зберігайте секрети безпечно та ставтеся до патчів як до рутинної справи — і ви перетворите тихі загрози на рівні фреймворку на керовані ризики.
