Перейти к содержанию

Chromium в докер-образах опаснее, чем в браузере: свежий zero-day в V8 и кого он на самом деле касается

Опубликовано
  • Админы
CVE-2026-85046 в движке V8
Заплатка вышла 3 сентября в сборке 152.0.7977.82

Браузер на рабочей машине обновится сам и про эту новость, скорее всего, даже не заставит вспомнить. А вот контейнер со скрейпером, собранный весной и с тех пор не пересобиравшийся, продолжит исполнять чужой JavaScript старым движком — и как раз он в зоне риска, а не вы за монитором.

Повод: 3 сентября 2026 года стабильный канал Chrome внепланово переехал на 152.0.7977.82/.83 под Windows и macOS и на 152.0.7977.82 под Linux. Ключевая запись бюллетеня — «High CVE-2026-85046: Type confusion in V8»; автор находки Сальваторе Гулиция (ник Serotav) сообщил о ней 4 августа и получил тысячу долларов. Отдельной строкой идёт то, ради чего релиз и выкатили вне графика: «Google is aware that an exploit for CVE-2026-85046 exists in the wild».

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

⚠️ ОСТОРОЖНО

Заголовок, под которым историю раскрутили на Hacker News, звучал как «Actively exploited sandbox RCE in all Chromium versions». Сверьтесь с первоисточником: Google пишет про type confusion уровня High, формулировок про выход из песочницы и про RCE в бюллетене нет. Факт эксплуатации подтверждён, подробности не раскрываются, а оценка CVSS 8.8 приходит из сторонних баз — не из самого бюллетеня. «Эксплуатируется» и «ломает песочницу везде» — утверждения разной силы.

Где апдейт браузера до движка не дотягивается

Пять мест, где работает V8
Пять потребителей одного движка и разные механизмы их обновления

Chrome чинится первым и сам — с ним хлопот нет. Загвоздка в том, что копий V8 у вас на диске обычно несколько, и про сентябрьскую сборку они не знают.

Хуже всего дела у headless-браузера внутри docker-стека. Парсер выдачи, сборщик скриншотов, конвейер OSINT — все они по роду занятий бродят по недоверенным доменам и гоняют чужие скрипты сотнями. То есть делают ровно то, подо что эксплойт и затачивают. А образ зафиксирован тегом и обновится ровно тогда, когда до него дойдут руки.

С приложениями на Electron ситуация мягче: интерфейс они рисуют из локальных ресурсов. Риск возвращается, стоит в окне появиться чему-то внешнему — предпросмотру ссылки, стороннему виджету, форме авторизации через чужой сервис. Особняком стоят антидетект-браузеры: это форки Chromium, и темп, с которым их вендор забирает патчи апстрима, вам не подконтролен.

Чем убедиться, что версия свежая

# обычный браузер
google-chrome --version
chromium --version

# в контейнере со скрейпером
docker exec <container> sh -c 'chromium --version || google-chrome --version'

# Electron: DevTools в окне приложения
navigator.userAgent      // ищем подстроку Chrome/152.0.7977.xx

Смотреть нужно на мажор и на завершающую группу цифр: если она меньше 152.0.7977.82, патча в сборке нет. Пользователям Electron поможет официальная таблица соответствия релизов Electron и версий Chromium — по ней легко понять, какого обновления приложения дожидаться.

✅ КАК ПРАВИЛЬНО

Программа-минимум на сегодня: накатить обновления на рабочих машинах; пройтись по docker-compose и выписать образы, где есть Chromium, Playwright, Puppeteer или Selenium; пересобрать их на свежем базовом слое; убедиться в результате командой внутри контейнера, а не чтением Dockerfile; выяснить у вендора антидетекта, вышло ли обновление, и до его появления не заходить с этих профилей на незнакомые домены.

Без нагнетания: червя тут нет, снаружи сервер через эту дыру не вскрывают. Эксплойту нужно, чтобы движок выполнил подготовленный скрипт, а значит кто-то должен открыть страницу. Человеку за браузером достаточно обновиться и выдохнуть. Роботу, который сам по своей воле обходит тысячи чужих сайтов в сутки, образы стоит пересобрать сегодня.

Для полноты картины: The Hacker News насчитала эту уязвимость шестым активно эксплуатируемым zero-day в Chrome с начала года и сообщила о включении её в каталог KEV агентства CISA, где федеральным ведомствам отвели срок до 18 сентября. Класс ошибки при этом ровно тот же, о котором шла речь в разборе аппаратной разметки памяти ARM: повреждение памяти в нативном коде остаётся живее всех живых, и обнаруживают его по-прежнему задним числом.


Источники

💬 ВОПРОС К СООБЩЕСТВУ

По какому принципу у вас обновляется Chromium в контейнерах — есть расписание пересборки или образ живёт со сборочной версией до ближайшей громкой новости? И ведёт ли кто-нибудь headless-браузер отдельной строкой в инвентаре того, что подлежит патчингу, а не просто зависимостью проекта?

Featured Replies

No posts to show

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу
Яндекс.Метрика

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.