HTTP2Shell RCE
Один стиснутий запит. Жодного входу. Оболонка на вашому сервері.
Що таке HTTP2Shell RCE?
Вада в бібліотеці стиснення, якою вебтрафік користується всюди, перетворює звичайний трафік br на виконання коду в усьому, що його декодує. Ви побачите, як HTTP2Shell валить воркер, а потім читає токен розгортання з пам'яті, і пройдете реакцію: розглянете блокування на межі мережі, зрозумієте, чому це не локалізація, оновите середовища виконання, що вбудовують декодер, а не пакет хоста, доведете, що виправлення діє, і замінете витеклі облікові дані. Ви навчитеся визначати межі й локалізувати вразливість вбудованої бібліотеки на всіх шляхах декодування, вхідних і вихідних.
Що ви дізнаєтесь у HTTP2Shell RCE
- Пояснюйте, як вада у вбудованій бібліотеці стиснення призводить до віддаленого виконання коду через звичайний трафік Content-Encoding: br — без входу й без вразливої функції застосунку
- Визначайте всі шляхи декодування, відкриті через ваду бібліотеки: і вхідні тіла запитів, і вихідні відповіді, які завантажує сервіс
- Пояснюйте, чому блокування br на межі мережі — тимчасовий захід, а не локалізація, і чому не допомагає прибирання br з Accept-Encoding
- Виконуйте справжнє виправлення: оновлюйте кожне середовище виконання, що вбудовує бібліотеку, і розгортайте його знову, а не покладайтеся на версію системного пакета на хості
- Розрізняйте виправлення й локалізацію: замінюйте облікові дані, які зловмисник прочитав із пам'яті, — таке читання не залишає слідів у журналах
HTTP2Shell RCE — Кроки навчання
-
Сервіс, що відповідає
21 жовтня 2026 року вийшли виправлення вади в бібліотеці стиснення Brotli — CVE, яку відстежують як CVE-2026-111497 і прозвали HTTP2Shell (також Node2Shell). Це запис за межами буфера (out-of-bounds write) у декодері, що обробляє Content-Encoding: br . Будь-який сервіс, який сам розпаковує трафік br, можна змусити пошкодити власну пам'ять, і попри назву це не вада HTTP/2. Боб не полює на якусь одну компанію. Він сканує сервіси на вразливій збірці й перебирає все, що відгукується. Сьогодні серед них Larksend, увесь продукт якої — завантажувати й розпаковувати чужі URL.
-
Визначте стек сервісу
Перш ніж надсилати щось спеціально створене, Боб з'ясовує, на чому працює API. Простий запит до публічного ендпоінта перевірки стану показує, яке середовище виконання і який фреймворк стоять за API.
-
Як працює HTTP2Shell
Бобу не потрібні ні обліковий запис, ні форма завантаження, ні вразливий плагін. Вада сидить у декодері Brotli, вбудованому в саме середовище виконання. Один пошкоджений потік br змушує декодер писати за межі власного буфера, а звідти виконанням уже можна керувати. Боб відкриває свої нотатки про будову запиту. Там розписано структуру потоку й ваду, яку він використовує; сам робочий тригер не наводиться. Головне — зрозуміти, чому звичайний стиснутий трафік доходить до виконання коду.
-
Чому трафік br доходить до коду
Запит можна спрямувати на будь-який ендпоінт, що приймає стиснуте тіло. Атака б'є не по коду самого Larksend, а по декодеру під ним.
-
Запустіть запит
Боб надсилає на API запит у кодуванні br. Перші спроби не дають нічого видимого, крім того, що збивають воркер, — саме так і описує бюлетень: вада обвалює процес набагато частіше, ніж спрацьовує.
-
Що він забирає
Боб надсилає запити далі. Під час однієї з наступних спроб переповнення вже не обвалює процес, а спрямовує виконання: у відповіді — вивід команди, яку він сам обрав і яка виконується від імені процесу node. Він читає змінні середовища процесу й забирає з собою робочий токен розгортання. Одна вада бібліотеки стає радіусом ураження: віддалене виконання коду на API і облікові дані, за якими можна викладати зміни в продакшн.
-
Перевірка знань
-
Надходить сповіщення
Постачальник захисту на межі мережі, з яким працює Larksend, зафіксував сплеск проб HTTP2Shell, і керівниця чергування залучає Алісу. Два сервіси застрягли в циклі аварійних перезапусків, а не один.
-
Підтвердьте збірку, що працює
Аліса починає з хоста API. Збій вказує на середовище виконання, тож спершу треба з'ясувати, яка збірка Node насправді обслуговує запити.
-
Сервер уже зламано
У сповіщенні йшлося, що в журналі одного воркера видно, як node запускає оболонку. Аліса читає кінець журналу воркера API, щоб переконатися самій.
Охоплення стандартів безпеки
OWASP Top 10
- A03:2025 Software Supply Chain Failures
- A06:2021 Vulnerable and Outdated Components
CWE
- CWE-787 Out-of-bounds Write
- CWE-1395 Dependency on Vulnerable Third-Party Component
MITRE ATT&CK
- T1190 Exploit Public-Facing Application
- T1203 Exploitation for Client Execution
CIS Controls
- CIS 7 Continuous Vulnerability Management
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- ID.RA Risk Assessment
- PR.PS Platform Security
GDPR
- Art. 33 Notification of a personal data breach to the supervisory authority