FlawOpen

flawopen.com/Incidents/bluemoon-chrome-v8-windows-alpc-september-2026

● BlueMoon · CVE-2026-85046 · September 2026 · Высокий
Исследования · FlawOpen

BlueMoon: три уязвимости преодолели границы Chrome и Windows

Proofpoint сообщила о целевых кампаниях BlueMoon, в которых объединялись CVE-2026-85046 (путаница типов V8), CVE-2026-87491 (выход из песочницы V8) и CVE-2026-85880 (локальное повышение привилегий в ядре Windows). Google и Microsoft подтвердили эксплуатацию до выпуска исправлений; Chromium-браузер и Windows нужно обновлять отдельно.[1], [2], [3], [4]

💡 Простыми словами (ELI5)

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

Ключевые понятия и термины

V8 / type confusion
V8 выполняет JavaScript. В CVE-2026-85046 предположения оптимизации Array.prototype.sort переставали быть верными, когда fill() менял тип элементов.[1], [2]
V8 sandbox / WebAssembly
Песочница V8 изолирует управляемую движком память внутри процесса отображения. CVE-2026-87491 преодолевала её через повреждение метаданных WebAssembly; это не песочница самого процесса.[1], [3]
ALPC / WNF / privilege
ALPC и WNF — механизмы ядра Windows, связанные с CVE-2026-85880. Описанная цепочка открывала SeDebugPrivilege, право отладки процессов.[1], [4]

Связи со стандартами

Этапы цепочки BlueMoon и решения по обновлению

Этап / CVE / границаЧто подтверждают источникиДействие защитника
Путаница типов JIT V8 — CVE-2026-85046Proofpoint описывает изменение массива через fill() в comparator Array.prototype.sort, нарушающее предположение о типе элементов. Google сообщила об эксплойте в реальных атаках.Установите Chrome/Chromium 152.0.7977.82/.83 (Windows/Mac) или .82 (Linux) либо новее; перезапустите браузер. Исправление вошло в выпуск Google от 3 сентября.
Выход из песочницы V8 — CVE-2026-87491Proofpoint сообщает о повреждении метаданных WebAssembly, пересекающем песочницу памяти V8; она отделена от песочницы процесса renderer. Google сообщила об эксплойте в реальных атаках.Установите Chrome/Chromium 153.0.8010.36/.37 (Windows/Mac) или .36 (Linux) либо новее; перезапустите браузер. Исправление вошло в выпуск Google от 8 сентября.
LPE ядра Windows — CVE-2026-85880Proofpoint описывает путь ALPC/WNF к SeDebugPrivilege и перечисляет старые сборки Windows, на которые нацеливался набор. Microsoft подтвердила эксплуатацию до обновлений от 8 сентября. Этот список целей не является полным перечнем уязвимых версий.Установите актуальные поддерживаемые обновления безопасности Windows, включая обновление от 8 сентября 2026 года или новее; найдите пакет для своей ОС в MSRC и выполните необходимую перезагрузку. Windows и Chrome исправляйте отдельно.

Хронология инцидента

2026-08-28

Proofpoint впервые наблюдала активность BlueMoon.[1]

2026-09-03

Chrome Stable исправил CVE-2026-85046 в 152.0.7977.82/.83 для Windows и Mac, .82 для Linux.[2]

2026-09-08

Chrome Stable исправил CVE-2026-87491 в 153.0.8010.36/.37 для Windows и Mac, .36 для Linux; Microsoft закрыла CVE-2026-85880 в сентябрьских обновлениях. Microsoft подтвердила эксплуатацию CVE-2026-85880 до выпуска обновлений Windows 8 сентября.[3], [4], [5]

Пошаговый сценарий атаки

Шаг 1

Наблюдавшаяся доставка

Proofpoint наблюдала целевые фишинговые кампании со ссылкой на набор эксплойтов. Этапы в браузере требовали, чтобы получатель открыл ссылку в уязвимом браузере на Chromium.[1]

Шаг 2

Путаница типов V8 — CVE-2026-85046

Proofpoint описывает оптимизированный путь Array.prototype.sort, где предположение о типе могло нарушиться, когда comparator менял массив с помощью fill(). Возникшая путаница типов стала первой уязвимостью в renderer; Google сообщила о наличии эксплойта в реальных атаках.[1], [2]

Шаг 3

Выход из песочницы V8 — CVE-2026-87491

По данным Proofpoint, повреждение метаданных модуля WebAssembly позволяло пересечь песочницу памяти V8. Это отдельная граница от песочницы процесса renderer; Google также сообщила об эксплойте в реальных атаках.[1], [3]

Шаг 4

LPE ядра Windows — CVE-2026-85880

Proofpoint описывает путь через ядро ALPC/WNF, который включал SeDebugPrivilege в renderer на отдельных старых сборках Windows. Microsoft отдельно подтвердила эксплуатацию до обновлений безопасности от 8 сентября 2026 года.[1], [4]

Шаг 5

Выход из процесса renderer

При наличии браузерных этапов и подходящей цели Windows описанная цепочка могла выйти из renderer через локальное повышение привилегий Windows в родительский процесс браузера. Пример Python показывает только устаревшее предположение, а не цепочку эксплойта.[1], [4]

Исходный код: Уязвимый vs Защищённый вариант

Безопасная иллюстрация на Python, не исходный код V8, эксплойт или патч производителя. Безобидный обратный вызов способен заменить числа строками после первой проверки. Исправление проверяет ограниченную копию после вызова и обрабатывает её без дальнейших вызовов. В уязвимом примере Python выдаёт исключение; порча памяти здесь не моделируется. Предполагаются только доверенные ограниченные синхронные вызовы.

УЯЗВИМАЯ РЕАЛИЗАЦИЯ
def numeric_total(values, callback):
    if type(values) is not list or len(values) > 1024:
        raise ValueError("Invalid batch")
    if any(type(x) is not int for x in values):
        raise ValueError("Expected integers")
    callback(values)
    # Callback мог нарушить предположение о типе.
    return sum(values)
БЕЗОПАСНЫЙ ИСПРАВЛЕННЫЙ ВАРИАНТ
def numeric_total(values, callback):
    if type(values) is not list or len(values) > 1024:
        raise ValueError("Invalid batch")
    callback(values)
    if len(values) > 1024:
        raise ValueError("Invalid batch")
    snapshot = tuple(values)
    if any(type(x) is not int or abs(x) > 1_000_000
           for x in snapshot):
        raise ValueError("Expected bounded integers")
    # Используйте проверенный снимок без повторного callback.
    return sum(snapshot)

Чек-лист по защите системы для инженеров

Источники