Исследователи из VUSec и Scuola Superiore Sant’Anna раскрыли новый вариант атаки Spectre-v2, получивший название Branch Target Reuse (BTR). Атака эксплуатирует взаимодействие между самомодифицирующимся кодом в JIT-движках (Just-In-Time — компиляция «на лету») и механизмом предсказания косвенных ветвлений процессора, позволяя извлекать конфиденциальные данные из памяти ядра Linux. Для ядра Linux уже выпущены исправления — CVE-2026-64507 и CVE-2026-64508, — причём последняя получила оценку 7.0 по CVSS v3.1 согласно записи Oracle Linux. Администраторам Linux-систем следует незамедлительно обновить ядро и проверить статус митигаций Spectre-v2.
Механизм атаки: устаревшие записи в буфере целей ветвлений
Суть BTR — в том, что современные процессоры при перезаписи кода в памяти (что постоянно происходит в JIT-движках) восстанавливают архитектурную когерентность, но не обязательно инвалидируют устаревшие записи в буфере целей ветвлений (Branch Target Buffer, BTB). Когда JIT-движок освобождает область памяти с ранее скомпилированным кодом и затем выделяет новый код по тому же или перекрывающемуся адресу, процессор может спекулятивно перейти по старой записи BTB, указывающей на уже несуществующий код. По данным исследователей, это создаёт примитив «транзиентного выполнения после освобождения» (transient execute-after-free), позволяющий атакующему перехватить спекулятивный поток управления.
Последовательность атаки выглядит следующим образом:
- Атакующий заставляет JIT-движок выделить «тренировочный» блок кода и направить на него косвенное ветвление, создавая запись в BTB.
- Тренировочный блок освобождается, а на его месте (или с частичным перекрытием адреса) выделяется новый целевой блок.
- При повторном срабатывании косвенного ветвления процессор использует устаревшую запись BTB и спекулятивно переходит по старому адресу.
- Результат — перехват спекулятивного потока управления и утечка конфиденциальных данных через побочный канал кэша.
Критическое условие: устаревшая запись BTB должна сохраниться после освобождения памяти JIT-движком и быть выбрана предсказателем ветвлений при следующем выполнении. Атака предполагает возможность запуска непривилегированного кода в JIT-движке.
Затронутые компоненты и границы воздействия
По данным исследователей, BTR был протестирован на трёх JIT-реализациях: SpiderMonkey (JIT-движок Mozilla Firefox), GraalVM и cBPF JIT ядра Linux — все оказались уязвимы, хотя с «заметно различающимися характеристиками эксплуатируемости и скоростью утечки».
Важно уточнить масштаб подтверждённого воздействия. Запись Oracle для CVE-2026-64508 описывает уязвимость конкретно в контексте BPF JIT-аллокатора ядра Linux: проблема возникает при повторном использовании памяти в упакованных (packed) аллокациях, причём аллокации, превышающие размер пакета, не покрываются механизмом очистки предсказателя. Это означает, что реальная область поражения в ядре Linux уже, чем кросс-платформенная картина, представленная в исходном отчёте. Воздействие на SpiderMonkey и GraalVM остаётся подтверждённым только исследовательской группой — независимая верификация этих данных не обнаружена.
Ни CVE-2026-64507, ни CVE-2026-64508 не внесены в каталог CISA KEV. Для CVE-2026-64507 верифицированная оценка CVSS не найдена. Ранее мы писали о добавлении уязвимостей ядра Linux в каталог CISA KEV — в данном случае такого статуса у BTR-уязвимостей нет.
Статус эксплуатации: PoC, не активная атака
Исходный отчёт упоминает два демонстрационных эксплойта (proof-of-concept) для ядра Linux. Однако независимого подтверждения активной эксплуатации в реальных условиях не обнаружено. Статус эксплуатации следует классифицировать как наличие публичного PoC, а не как подтверждённую эксплуатацию в дикой природе.
Доступные исправления и митигации
Патчи для обеих CVE уже приняты в основную ветку ядра Linux. Для нижестоящих дистрибутивов:
- Oracle Linux 9 и 10 (kernel-uek): обновление ELSA-2026-500248 выпущено 4 сентября 2026 года и включает исправление CVE-2026-64508.
- GraalVM: Oracle применил рандомизацию расположения кэша JIT-кода — соответствующий pull request принят 19 августа 2026 года.
- Mozilla Firefox: по данным исследователей, Mozilla рассматривала митигации на основе IBPB (Indirect Branch Predictor Barrier), но приоритетом является завершение и развёртывание изоляции сайтов (site isolation).
Проверка статуса митигаций
Администраторы Linux-систем могут проверить текущее состояние защиты от Spectre-v2, включая статус IBPB, через интерфейс sysfs, как описано в документации ядра Linux по Spectre:
/sys/devices/system/cpu/vulnerabilities/spectre_v2
Этот файл отображает активные механизмы митигации и позволяет оценить, защищена ли система от атак на основе предсказания косвенных ветвлений.
Приоритизация патчей
При планировании обновлений следует учитывать различия между двумя CVE. CVE-2026-64508 имеет подтверждённую вендором оценку 7.0 (CVSS v3.1) и конкретный путь обновления для Oracle Linux 9/10. Для CVE-2026-64507 верифицированная оценка серьёзности и диапазон затронутых версий на момент анализа не установлены. Это не означает, что вторая уязвимость менее опасна, но приоритет патчинга CVE-2026-64508 обоснован более полной информационной базой.
BTR — очередное подтверждение того, что класс уязвимостей Spectre продолжает порождать новые варианты атак, обходящие ранее развёрнутые защиты. Практическое действие: обновите ядро Linux до версии, содержащей исправления CVE-2026-64507 и CVE-2026-64508, проверьте статус митигаций Spectre-v2 через sysfs и убедитесь, что конфигурация IBPB соответствует рекомендациям вашего дистрибутива. Для сред с GraalVM — обновите до версии с рандомизацией кэша JIT-кода.