Застосунок може приймати звичайний HTTPS-трафік і водночас обробляти небезпечні дані, якщо розпаковує надані користувачами дані Brotli. 25 жовтня 2026 року Microsoft випустила позапланові оновлення .NET для усунення переповнення буфера в декодері Brotli; вразливість позначена як CVE-2026-111497. Node.js включив виправлення цієї ж вразливості до окремого випуску безпеки від 21 жовтня. Для розробника перший крок — знайти шлях від зовнішніх даних до декодера, а потім оновити середовище виконання та перебудувати або перезапустити застосунок.

За описом Microsoft, уразливість .NET може дозволити неавтентифікованому зловмиснику читати пам’ять процесу або пошкоджувати її, що здатне призвести до розкриття даних, відмови в обслуговуванні чи підвищення привілеїв. Виправлення випущено для .NET 8, 9 і 10, а також .NET 11 Release Candidate 3. Для .NET 8 зазначено runtime 8.0.33 і SDK 8.0.133 або 8.0.427. .NET Framework ця вразливість не зачіпає.
Де виникає ризик
Ризик виникає, коли застосунок передає недовірений потік Brotli вразливому декодеру. У .NET це може відбуватися під час використання ASP.NET Core request decompression, автоматичного розпакування відповідей через HttpClient або прямого виклику API з System.IO.Compression, наприклад BrotliStream і BrotliDecoder. Рекомендація .NET перелічує ці шляхи та зазначає, що розпакування вхідних запитів і автоматичне розпакування відповідей вимкнені за замовчуванням.
Інвентаризація пакетів — лише початок перевірки. Знайдіть конфігурації middleware і HTTP-клієнтів, прямі виклики декодера та сторонні компоненти, які приймають стиснені дані. З’ясуйте, чи надходять такі дані від клієнтів, вебхуків, проксі або зовнішніх API, а також які обмеження розміру й часу обробки діють до розпакування. Це допоможе визначити, де вразливий код отримує дані, контрольовані ззовні.
Оновлення .NET
Установіть оновлення для потрібної гілки: .NET 8 — 8.0.33, .NET 9 — 9.0.22, .NET 10 — 10.0.14; для .NET 11 — Release Candidate 3. Для застосунків із залежністю від framework установіть оновлене середовище виконання та перезапустіть застосунок. Автономні застосунки потрібно перебудувати й опублікувати повторно: оновлення runtime на хості не замінює копію, вбудовану в застосунок. Контейнери перебудуйте й розгорніть на оновлених образах .NET.
Для NativeAOT під час повторної публікації також використовуйте оновлені SDK і пакети runtime. Якщо виправлення поки неможливо розгорнути, тимчасово вимкніть Brotli на виявлених вхідних шляхах, що приймають недовірені дані. Перевірте звичайні запити й інтеграції: вимкнення стиснення може змінити обробку клієнтів, які надсилають стиснені тіла запитів.
Перевірте Node.js і системні залежності
Проєкт Node.js повідомив про вразливість 21 жовтня: вона зачіпає вбудований у Node.js 22.x, 24.x і 26.x декодер Brotli. Випуск безпеки Node.js вказує виправлені версії 22.23.4, 24.22.1 і 26.12.1 відповідно. Оновіть використовувану підтримувану гілку та перезапустіть службу. За описом проєкту, проблема виникає, коли застосунок розпаковує надані зловмисником дані за допомогою node:zlib; пошкодження пам’яті може призвести до аварійного завершення, розкриття пам’яті або віддаленого виконання коду.
Також перевірте залежності, що постачаються окремо від системного Node.js або .NET. Зіставте версії Brotli у контейнерах і артефактах збірки, а потім повторіть перевірку після розгортання. У CI зафіксуйте оновлений базовий образ і включіть перевірку версій уразливих бібліотек до звичайного процесу збірки.
Короткий порядок дій
- Складіть список застосунків, SDK, середовищ виконання, контейнерів і збірок NativeAOT, що використовують Brotli.
- Знайдіть місця, де зовнішні дані проходять автоматичне або пряме декодування.
- Оновіть .NET, Node.js і бібліотеки, що постачаються окремо, до виправлених версій; перебудуйте автономні застосунки й контейнери.
- Перезапустіть процеси та перевірте версії в робочому середовищі, а не лише у файлах проєкту.
- Поки виправлення не розгорнуто, обмежте обробку недовірених даних Brotli на виявлених вразливих шляхах.
Пріоритет залежить від поєднання двох чинників: наявності вразливого компонента та можливості передати йому спеціально сформований стиснений потік. Оновлення усуває дефект, а карта вхідних шляхів допомагає переконатися, що виправлення застосовано до процесів, автономних збірок і контейнерів.