Уязвимость в декодере Brotli от Google, которая сначала была известна под названием «node2shell», оказалась шире, чем думали вначале. По данным heise online, она затрагивает не только Node.js, но и Bun, Python и другое программное обеспечение. Администраторам стоит обновиться без промедления.

О чём речь

Brotli — это метод сжатия данных. Его часто применяют, чтобы уменьшить размер веб-контента и ускорить его передачу. Декодер — это часть, которая распаковывает сжатые данные обратно. Поскольку он нередко обрабатывает данные, приходящие извне, эта область особенно чувствительна: ошибка здесь может сказаться на любом приложении, которое использует этот компонент.

То, что одновременно называют несколько сред выполнения и языков, объясняется довольно просто. Многие проекты не подключают код Brotli каждый раз заново, а берут эталонную реализацию или используют готовую библиотеку. Если ошибка находится в этом общем элементе, она появляется в каждом продукте, который его применяет. В краткой заметке нет технических подробностей о характере уязвимости. Тем, кому нужны точные сведения, стоит прочитать уведомления соответствующих проектов.

Что администраторы могут проверить сейчас

  • Составить перечень: какие среды выполнения и инструменты используются, например Node.js, Bun или Python? Сюда относятся и сборочные серверы, и компьютеры разработчиков.
  • Установить обновления: источник советует обновляться оперативно. Ориентироваться нужно на уведомления о безопасности от соответствующих производителей и проектов.
  • Учитывать зависимости: образы контейнеров, встроенные в поставку приложения и пакеты могут содержать собственную копию библиотеки. Их, возможно, придётся пересобрать, даже если сама система уже обновлена.
  • Следить за другими затронутыми продуктами: формулировка «и другое» указывает на то, что список может быть ещё не окончательным.

Этот случай показывает, насколько далеко может распространиться ошибка в, казалось бы, небольшой библиотеке. Командам разработчиков может быть полезно вести документированный учёт своих зависимостей. Тогда при следующем подобном сообщении будет проще быстро выяснить, затронуты ли они и где именно.