Группа ученых из VUSec и Scuola Superiore Sant’Anna раскрыла подробности о новом варианте уязвимости процессоров Spectre, затрагивающем движки Just-In-Time (JIT), используемые в веб-браузерах, средах выполнения языков программирования и ядре операционной системы, у различных производителей процессоров. Новый вариант Spectre-v2 получил кодовое название Branch Target Reuse (BTR).
«Ключевая идея заключается в том, что, хотя современные процессоры восстанавливают когерентность архитектурного кода после самомодификации, они не обязательно аннулируют устаревшие записи предсказания косвенных переходов (т. е. цели переходов)», — заявили исследователи Сандер Вибинг, Юхуэй Чжу, Алессандро Бионди и Криштиано Джуффрида в сопутствующей статье.
«В JIT-движках эти устаревшие цели могут существовать дольше исходного кода и позже использоваться повторно при повторном заполнении кэша кода, что приводит к временной уязвимости execute-after-free. Это позволяет злоумышленникам перехватывать временный поток управления к вновь сгенерированному коду по устаревшим смещениям, обходя программные средства защиты или достигая невыровненных гаджетов».
BTR был протестирован на SpiderMonkey (JIT-движок Mozilla Firefox), GraalVM и JIT cBPF ядра Linux, и все они оказались подвержены уязвимости, хотя и с «заметно различными характеристиками эксплуатируемости и скоростью утечки».
В качестве доказательства концепции были разработаны два сквозных эксплойта против ядра Linux, которые могут быть использованы для утечки и восстановления хэша пароля root за считанные минуты с полностью пропатченной системы Intel с включенными стандартными средствами защиты.
Spectre относится к классу уязвимостей безопасности процессоров, впервые обнаруженных в 2017 году, которые используют спекулятивное выполнение — технику оптимизации производительности, которую современные процессоры используют для предсказания и предварительного выполнения инструкций. Злоумышленник может использовать эту лазейку, чтобы обманом заставить процессор выполнять спекулятивные операции, получающие доступ к конфиденциальным данным, а затем вывести эти данные через побочный канал кэширования.
Spectre v2 — это один из конкретных типов атак Spectre, который злоупотребляет предсказанием косвенных переходов в современных процессорах для достижения тех же целей. В частности, он отравляет механизм предсказания переходов процессора, чтобы вызвать выполнение косвенного перехода программой-жертвой, что, в свою очередь, заставляет процессор неправильно предсказать переход и спекулятивно выполнить код, контролируемый злоумышленником, или гаджет.
Хотя результаты неправильного предсказания отбрасываются, злоумышленник может определить, к чему получил доступ спекулятивный механизм выполнения жертвы, используя изменения состояния кэша и измеряя эти изменения.
«BTR нацелен на JIT-движки и возникает из-за взаимодействия между самомодифицирующимся кодом (SMC) и предсказанием косвенных переходов», — заявили исследователи, добавив: «JIT-движки впервые демонстрируют эксплуатируемые возможности временного выполнения, вызванные SMC». Атака предполагает, что злоумышленник может запускать непривилегированный код в JIT-движке и стремится раскрыть конфиденциальные данные из хост-среды. Вся последовательность действий следующая:
«Перенаправляя поток управления на архитектурно недопустимую точку входа, злоумышленник может обойти средства защиты Spectre или выполнить невыровненные инструкции, в конечном итоге раскрывая секретные данные», — пояснили исследователи. Однако ключевым аспектом BTR является то, что устаревшая запись BTB не должна быть аннулирована или заменена после того, как JIT-движок освободит тренировочный блок, и предсказатель переходов должен выбрать устаревшую запись BTB для предсказания.
После ответственного раскрытия информации были выпущены и объединены в ядро Linux средства защиты от BTR (CVE-2026-64507 и CVE-2026-64508).
«GraalVM вместо этого препятствует повторному использованию областей, рандомизируя расположения кэша JIT-кода», — заявили исследователи. «Mozilla рассматривала средства защиты на основе IBPB [Indirect Branch Predictor Barrier], но в настоящее время отдает приоритет завершению и развертыванию изоляции сайтов».
Раскрытие информации произошло почти через два месяца после того, как исследователи MIT CSAIL Даниэль Трухильо и Мэнцзя Янь раскрыли технику атаки спекулятивного выполнения под названием Interrupt Injection, которая может обойти защиту Spectre v2 и утекать произвольную память ядра из систем Linux на базе Intel и AMD.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Ravie Lakshmanan




