Mastodon Mastodon Mastodon Mastodon

CVE-2026-111497 у декодері Brotli: PHP та Microsoft випускають екстрені оновлення

Photo of author

CyberSecureFox Editorial Team

Опубліковано:

Критична вразливість CVE-2026-111497 у декодері Brotli від Google продовжує спричиняти хвилю екстрених оновлень. Після початкових патчів для Node.js, Bun і Python-пакетів, про які ми вже писали, 26 жовтня PHP перевипустив офіційні Windows-пакети, а Microsoft випустила виправлення для .NET, Visual Studio та PowerShell. Вразливість дозволяє пошкодити пам’ять і потенційно виконати довільний код через спеціально сформовані Brotli-дані. 27 жовтня CISA внесла вразливість до каталогу Known Exploited Vulnerabilities зі строком усунення до 10 листопада 2026 року.

Суть вразливості та оцінки критичності

CVE-2026-111497 — це помилка запису за межі буфера (out-of-bounds write) у декодері Brotli, що зачіпає версії бібліотеки з 1.0.3 по 1.0.9, з 1.1.0 по 1.1.0 і версію 1.2.0. Експлуатація може призвести до аварійного завершення процесу, витоку вмісту пам’яті або віддаленого виконання довільного коду.

Оцінки критичності відрізняються залежно від методології. Згідно з GitHub Advisory Database, вразливість отримала 9,2 бала за шкалою CVSS 4.0 (Critical). Red Hat оцінює її в 8,1 бала за CVSS 3.1 (Important), вказуючи на високу складність атаки — надійна експлуатація ускладнена через апаратні та програмні механізми захисту. Ці оцінки використовують різні версії CVSS і різні припущення, тому порівнювати їх напряму некоректно.

Вразливість виявлена дослідниками, яких JFrog і Wiz ідентифікують як Khai Tran і Sylvie Mayer з OpenAI Codex Security, хоча прямого підтвердження від OpenAI у доступних джерелах не знайдено. Google виправила проблему в Brotli версій 1.2.1, 1.1.1 і 1.0.10.

Зачеплені продукти та умови експлуатації

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

PHP на Windows

Згідно з повідомленням PHP, уразливий декодер доступний через розширення cURL за ввімкненої автоматичної декомпресії HTTP-відповідей. Сам cURL не вмикає цю функцію за замовчуванням — її активують застосунки або HTTP-клієнти через опцію CURLOPT_ENCODING.

Однак бібліотека Guzzle версій 7.16.1 і 8.3.1, згідно з аналізом її вихідного коду, встановлює CURLOPT_ENCODING у порожній рядок за замовчуванням під час роботи через cURL-обробник. Порожнє значення активує всі підтримувані формати декомпресії, зокрема Brotli. Це означає, що застосунки, які використовують Guzzle з налаштуваннями за замовчуванням на попередніх Windows-збірках PHP, відповідали умовам для спрацювання вразливості. Атака при цьому надходить у вигляді спеціально сформованої стиснутої відповіді від сервера, до якого звертається PHP-застосунок.

PHP випустив перевипущені пакети:

  • 8.5.12-1
  • 8.4.27-1
  • 8.3.36-1
  • 8.2.35-1

Ці збірки містять той самий вихідний код PHP, що й релізи від 21 жовтня (включно з виправленнями PHP2Shell), але тепер включають Brotli 1.2.1. Оскільки версія PHP не змінилася, команда php -v покаже той самий номер. Відрізнити нову збірку можна за суфіксом -1 у назві файлу та за SHA-256 хешем на сторінці завантажень.

Microsoft .NET

Згідно з бюлетенем безпеки Microsoft, виправлення увійшли до .NET версій 8.0.33, 9.0.22, 10.0.14 і .NET 11 Release Candidate 3. Оновлення також отримали Visual Studio 2019, 2022 і 2026, а також PowerShell 7.4, 7.5 і 7.6.

У .NET умови експлуатації відрізняються від PHP: ASP.NET Core та HttpClient не виконують автоматичну Brotli-декомпресію за замовчуванням. Загроза виникає лише якщо застосунок явно вмикає декомпресію запитів або відповідей чи безпосередньо використовує API Brotli для обробки даних з ненадійних джерел.

Масштаб проблеми поза межами PHP та .NET

Brotli вбудований у безліч проєктів, і оновлення системної бібліотеки недостатньо, якщо застосунок постачається з власною копією декодера. За даними дослідження JFrog, уразливий декодер може бути задіяний не лише через HTTP-клієнти, а й через парсери файлів, медіаінструменти та інші нативні інтеграції. Зокрема, JFrog продемонстрував ланцюжок експлуатації через FFmpeg і спеціально підготовлене зображення JPEG XL, де бібліотека libjxl використовує Brotli для розпакування метаданих.

За даними Wiz, компоненти, уразливі до CVE-2026-111497, присутні в 91% хмарних оточень, а в 82% таких середовищ є публічно доступні екземпляри Node.js. Ці цифри не були незалежно підтверджені іншими джерелами, але відображають широке поширення Brotli в контейнерних застосунках, кластерах Kubernetes, шлюзах API та реверс-проксі.

Стан експлуатації

Підтверджених випадків експлуатації CVE-2026-111497 у реальних атаках поки що не зафіксовано. Однак дослідники Imperva продемонстрували робочий PoC-експлойт із віддаленим виконанням коду на офіційній збірці Node.js. Внесення вразливості до каталогу CISA KEV 27 жовтня зі строком усунення 10 листопада вказує на те, що регулятор вважає загрозу достатньо серйозною для обов’язкового реагування.

Рекомендації

Для PHP на Windows: установіть перевипущені пакети з суфіксом -1 зі сторінки завантажень PHP. Якщо негайне оновлення неможливе, тимчасовий захід — вимкнути автоматичну Brotli-декомпресію. У коді PHP це означає не встановлювати CURLOPT_ENCODING. У Guzzle — встановити опцію запиту decode_content у false (це вимкне декомпресію всіх форматів, включно з gzip). Важливо: простого видалення br з заголовка Accept-Encoding недостатньо — сервер усе одно може надіслати Brotli-відповідь.

Для .NET: оновіть до версій 8.0.33, 9.0.22, 10.0.14 або .NET 11 RC3 відповідно. Перевірте, чи використовує застосунок явну Brotli-декомпресію або прямі виклики API Brotli.

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

З огляду на внесення CVE-2026-111497 до CISA KEV із граничним строком 10 листопада та наявність публічних PoC-експлойтів, оновлення зачеплених компонентів слід розглядати як пріоритетне завдання. Організаціям, які використовують PHP на Windows з Guzzle або іншими HTTP-клієнтами з автоматичною декомпресією, рекомендується оновитися в першу чергу — саме в цій конфігурації умови експлуатації виконуються за замовчуванням.


CyberSecureFox Editorial Team

Редакція CyberSecureFox висвітлює новини кібербезпеки, уразливості, malware-кампанії, ransomware-активність, AI security, cloud security та security advisories вендорів. Матеріали готуються на основі official advisories, даних CVE/NVD, сповіщень CISA, публікацій вендорів і відкритих звітів дослідників. Статті перевіряються перед публікацією та оновлюються за появи нових даних.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.