Brotli — формат сжатия от Google, на котором держится заметная часть веба. В его декодере нашли порчу памяти: CVE-2026-111497. Порченый поток данных переполняет буфер — дальше падение, утечка памяти или выполнение чужого кода.
Курьёз: патч в исходники попал 27 февраля, а релиз с ним вышел только 21 октября. Восемь месяцев дыра лежала в коде, и о том, что это дыра, никто не знал.
Дальше арифметика тиражирования: каждая программа тащит свою копию декодера и обновляется сама. Node.js 22/24/26, Bun, Python-пакеты Brotli и brotlicffi, Envoy, Istio, cdxgen.
Imperva показала выполнение кода на непатченном Node.js 24.22.0 под Linux ARM64; эксплойт не публиковали, выходило не с первой попытки. На остальном софте RCE не демонстрировали, реальных атак нет. Оценки разъехались: Google — 9.2, Red Hat — 8.1.
Практика скучная: обновить рантайм или библиотеку и перезапустить — работающий процесс держит старый декодер до рестарта. Контейнеры пересобрать. Сканеры зависимостей по Python могут молчать: CVE заведён на репозиторий Google, не на PyPI.
Это не история про громкий взлом, а про то, как один неприметный C-файл расползается по половине стека и синхронно икает у всех.
#brotli #nodejs #уязвимости #CVE



