В protobuf.js обнаружены уязвимости, ведущие к выполнению кода
🔥 В protobuf.js обнаружены уязвимости, ведущие к выполнению кода
Исследователи Cyera вскрыли недооцененный вектор: библиотека protobuf.js принимает схему и метаданные как доверенные по умолчанию. Это позволяет злоумышленнику через вредоносную protobuf-схему, дескриптор или специально собранный пакет данных вызвать крах процесса, повреждение среды выполнения, а в худшем случае — удалённое выполнение кода. Механика держится на трёх китах: бесконтрольная рекурсия при десериализации, загрязнение прототипа через сгенерированные конструкторы сообщений и прямой ввод кода в pbjs через имена полей. Наиболее тяжелая цепочка — CVE-2026-44291: атакующий загрязняет Object.prototype, после чего protobuf.js при компиляции кодера/декодера через Function() подставляет управляемую строку и исполняет произвольный JavaScript в процессе.
• CVE-2026-44291 (CVSS 8.1) — выполнение кода через загрязнение прототипа с последующей генерацией кода.
• CVE-2026-44289 (CVSS 7.5) — отказ в обслуживании неограниченной рекурсией при разборе protobuf-сообщений.
• CVE-2026-44295 (CVSS 8.7) — ввод кода в утилиту pbjs через имена полей схемы.
Protobuf.js тянется через Google Cloud клиентские библиотеки, конвейеры CI/CD, Baileys (WhatsApp-боты), векторные хранилища и оркестраторы AI-нагрузок — патч закрывает не конкретный сервис, а пол-инфраструктуры в зависимостях. Версии ≤ 7.5.5 и 8.x до 8.0.1 уязвимы; исправления вышли в 7.5.6 и 8.0.2. По данным The Hacker News, Cyera подчеркивает: эксплуатация не требует прямого доступа к целевой машине — достаточно, чтобы вредоносная схема попала в обработку через обмен файлами, репозиторий или входящее сообщение.
Сериализаторы давно перестали быть просто утилитами — protobuf.js компилирует код на лету и доверяет внешнему описанию типов. Это смещает поверхность атаки туда, где большинство сканеров SAST ищет плохо. Проверьте npm ls protobufjs во всех сервисах, включая те, где библиотеку явно не подключали: в AI-конвейерах она почти наверняка есть транзитивно, и обновляться придётся всей цепочке.
#protobufjs #NodeJS #RCE #prototypepollution #Proto6