jsonscraper

Уразливість Brotli зачепила .NET і Node.js: як перевірити й оновити застосунки

CVE-2026-111497 пов’язана з обробкою спеціально сформованих даних Brotli. Перевірте не лише версію середовища виконання, а й фактичне використання декодера.

Редакційна політика Повідомити про помилку

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

Стаття: Уразливість Brotli зачепила .NET і Node.js: як перевірити й оновити застосунки
Коротко: 25 жовтня Microsoft випустила позапланові виправлення .NET для вразливості декодера Brotli CVE-2026-111497. Node.js включив виправлення цієї ж вразливості до релізів безпеки від 21 жовтня. Щоб оцінити ризик, з’ясуйте, які застосунки декодують недовірені дані та яка версія бібліотеки працює в розгорнутому середовищі.
Роль зображення: обкладинка — центральна ідея
Розділ: 
Візуальний об’єкт: ілюстрація про стиснення Brotli
© jsonscraper · ілюстрація, створена ШІ

За описом 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 зафіксуйте оновлений базовий образ і включіть перевірку версій уразливих бібліотек до звичайного процесу збірки.

Короткий порядок дій

  1. Складіть список застосунків, SDK, середовищ виконання, контейнерів і збірок NativeAOT, що використовують Brotli.
  2. Знайдіть місця, де зовнішні дані проходять автоматичне або пряме декодування.
  3. Оновіть .NET, Node.js і бібліотеки, що постачаються окремо, до виправлених версій; перебудуйте автономні застосунки й контейнери.
  4. Перезапустіть процеси та перевірте версії в робочому середовищі, а не лише у файлах проєкту.
  5. Поки виправлення не розгорнуто, обмежте обробку недовірених даних Brotli на виявлених вразливих шляхах.

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

People

No people listed for this article yet.

Keep readingGitHub CLI додала OAuth-токени зі строком дії: як увімкнути й перевірити інтеграції
Read the next article

Перетворіть прочитане на робочу інтеграцію

Досліджуйте API соціальних даних jsonscraper, тестуйте запити й створюйте нові процеси.

Переглянути API