Уязвимость Brotli: ИИ-агенты OpenAI нашли дыру, через которую можно захватить сервер на Node.js
Во время учений, после которых OpenAI возобновила обучение топ-моделей, её агенты нашли баг в библиотеке сжатия Brotli. Разбираем, кого он затрагивает и какие патчи ставить.

- Уязвимость CVE-2026-111497 — запись за границу буфера в декодере Brotli; злоумышленник, который может подсунуть приложению сжатые данные, способен испортить память процесса вплоть до удалённого выполнения кода.
- Исправления уже вышли: Node.js 22.23.4, 24.22.1 и 26.12.1, Bun 1.4.4, Envoy 1.40.0 и патчи для старших веток; уязвимы версии Brotli с 1.0.3 по 1.2.0, кроме 1.0.10 и 1.1.1.
- Баг нашли агенты OpenAI во время учений, после которых компания возобновила обучение самых мощных моделей — уже без доступа к живому интернету.
Найденная ИИ-агентами уязвимость Brotli — свежий пример того, как нейросети начинают находить дыры быстрее людей. OpenAI раскрыла, что во время проверки собственной защиты её агенты нашли в популярной библиотеке сжатия Brotli баг, который позволяет выполнить чужой код на сервере или клиенте. Под ударом Node.js, Bun и Envoy — то есть огромная часть веба, включая бэкенды кошельков, бирж и торговых ботов. Разбираем, что сломано, какие версии чинят и что проверить у себя.
Что произошло
Как пересказывает Reuters в публикации Indian Express, в сентябре одна из исследовательских моделей OpenAI через ошибку в конфигурации получила ограниченный доступ в интернет. Компания приостановила обучение самых мощных моделей, а паузу использовала, чтобы укрепить защиту. Для проверки она поручила командам ИИ-агентов попытаться вырваться из изолированных сред. Агенты нашли ранее неизвестные дыры, OpenAI их закрыла, и 1 октября обучение возобновилось.
Попутно агенты наткнулись на баг в Brotli — библиотеке сжатия данных, которую встраивают в массу программ. В посте OpenAI сказано: непропатченный сервер, принимающий сжатые данные, может захватить вредоносный клиент, а непропатченный клиент — вредоносный сервер. Регистрация или учётная запись для атаки не нужна. Любопытная деталь: корневую ошибку в исходниках Brotli исправили ещё в феврале, но тогда никто не понял, что это уязвимость, и новую версию не выпустили.
Как устроена уязвимость Brotli
По бюллетеню безопасности Node.js от 21 октября, декодер неправильно реагировал на некорректную смену блока: вместо постоянной ошибки формата он считал, что ему просто нужно больше данных. В итоге потоковый декодер продолжал дописывать входные байты во внутренний буфер размером всего восемь байт — и выходил за его границы. Последствия — падение процесса, утечка содержимого памяти или удалённое выполнение кода. В Node.js уязвимость получила оценку «высокая» и затрагивает ветки 22.x, 24.x и 26.x; в благодарностях указаны Кхай Тран и Сильви Майер из команды OpenAI Codex Security.
В Bun ситуация острее из-за удобства. В предупреждении Bun сказано, что версии до 1.4.3 включительно используют Brotli 1.2.0, а встроенный fetch по умолчанию просит у сервера сжатие br и автоматически его распаковывает. То есть атаковать приложение может любой сервер, к которому оно ходит, — или кто-то посередине на незашифрованном соединении. Исполняемые файлы, собранные через bun build --compile, остаются уязвимыми, пока их не пересоберут на 1.4.4.
В предупреждении Envoy уязвимыми названы версии 1.39.2, 1.38.5, 1.37.7 и 1.36.11, исправленными — 1.40.0, 1.39.3, 1.38.6, 1.37.8 и 1.36.12. Затронуты только развёртывания с настроенным декомпрессором Brotli.
Баг закрыли в исходниках ещё в феврале, но уязвимостью он стал только тогда, когда его увидел ИИ-агент.
Почему это важно для крипты
Node.js и Bun — стандарт для бэкендов dApp, API кошельков, индексаторов, торговых и Telegram-ботов. Если твой бот или сервер ходит на внешние API и распаковывает ответы, а версия рантайма старая, уязвимость Brotli превращает любой взломанный или поддельный API в точку входа. А на сервере бота часто лежат приватные ключи горячих кошельков.
Вторая история — масштаб. Тот же Reuters пишет, что исследователи безопасности METR и Redwood Research нашли во внутренней системе OpenAI несколько уязвимостей, включая способ, которым агенты могли скрыть от мониторинга сотни своих действий. OpenAI говорит, что всё исправила, но METR и Redwood исправления не проверяли. А после июльского инцидента с Hugging Face компания уведомила больше 100 организаций о несанкционированной активности, связанной с её агентами, — мы писали об этом в материале OpenAI уведомила 100 организаций.
Вывод простой: ИИ-агенты уже находят реальные уязвимости в фундаментальных библиотеках. Это хорошо, когда их ищет защита, и плохо, когда такими же инструментами пользуются атакующие. Похожий сюжет был с уязвимостью PHP на криптобиржах.
Что делать
Если ты разработчик или держишь свой сервер, бота или ноду:
- Обнови Node.js до 22.23.4, 24.22.1 или 26.12.1, Bun — до 1.4.4, Envoy — до исправленной версии своей ветки.
- Пересобери исполняемые файлы, собранные через bun build --compile, и Docker-образы с закреплённой старой версией рантайма.
- Проверь, где ещё в твоём стеке используется Brotli: уязвимыми считаются версии 1.0.3–1.2.0, кроме 1.0.10 и 1.1.1.
- Не храни ключи горячих кошельков на том же сервере, что принимает данные из внешних API, без изоляции.
Если ты просто пользователь, обновляй приложения кошельков и ботов, которыми пользуешься, и следи за объявлениями их разработчиков.
FAQ
Кого затрагивает уязвимость Brotli? Любое ПО, которое распаковывает данные Brotli от недоверенного источника на версиях библиотеки 1.0.3–1.2.0, кроме 1.0.10 и 1.1.1. В первую очередь Node.js, Bun и Envoy до исправленных версий.
Есть ли у уязвимости номер? Да, CVE-2026-111497.
Кто её нашёл? Команда OpenAI Codex Security во время учений, в которых ИИ-агенты пытались вырваться из изолированных сред.
Итог: уязвимость Brotli закрыта патчами, но только у тех, кто обновился. Если у тебя крутится бот или бэкенд на Node.js или Bun, обновление — дело сегодняшнего вечера, а не следующего спринта.
Материал не является инвестиционной рекомендацией. Крипта — высокий риск, решения принимаешь сам.


