Исследователи из Нидерландов и Италии зафиксировали в современных процессорах новую разновидность уязвимости Spectre v2 под названием Branch Target Reuse (BTR). По заявлению ученых, атака нацелена на работу JIT-компиляторов, которые функционируют «на лету» и задействованы ядрами операционных систем, браузерами и средами исполнения. Уязвимость затрагивает процессоры Intel, AMD и Arm, что делает проблему широкой по охвату. Авторы подчёркивают, что злоумышленник, сумевший выполнить код на целевой машине, может использовать BTR для кражи конфиденциальных данных из памяти, например хеши паролей.

Доказательства концепции включали анализ подсистем cBPF в Linux, среды Oracle GraalVM и движка SpiderMonkey, а также создание двух полноценных эксплойтов для ядра Linux. Авторы сообщили, что доступ к современным JIT‑компиляторам eBPF имеет привилегированные пользователи, но предшествующий cBPF тоже предоставляет некоторый уровень доступа у непривилегированных программ. В исследованиях демонстрировалась возможность обхода механизмов защиты через механизмы фильтрации и секционирования, что позволяет считывать данные в памяти даже при существующих мерах. В частности, упоминается, что при.reading данных даже на скорости 8 байт в секунду можно добраться до секретов после загрузки хеша суперпользователя в память.

Экспериментальная реализация атаки в Firefox инициировалась через вредоносный сайт, запускающий JavaScript. Разработчики Mozilla сообщили, что изоляция сайтов ещё не полностью внедрена, поэтому содержимое всех вкладок может оказаться в одном адресном пространстве с кодом злоумышленника, что делает уязвимость актуальной для всех данных в браузере. В движке SpiderMonkey на процессорах Intel устаревшие записи о ветвлении сохраняются достаточно долго и могут использоваться повторно, что позволяет ускорить утечку данных до нескольких десятков байт в секунду. Полноценный эксплойт в браузере на данный момент не создан.

В GraalVM атаку BTR рассматривают как способ спекулятивного обхода защиты памяти, предназначенной для предотвращения спектр USpectre. Исследователи достигли повторного использования адресов памяти, хотя собственные процессы компиляции кода и сборки мусора стирают записи о ветвлении, прежде чем их можно применить. По мнению авторов, данное ограничение «не является фундаментальным» и может быть устранено в будущих версиях.

Разработчики отмечают, что нейтрализация угрозы возможна программно: например, через барьер предсказания косвенных переходов (IBPB). В ядре Linux внедрён механизм защиты для архитектуры x86, который запускает IBPB при размещении cBPF в памяти, ранее использовавшейся под выполнение кода BPF. Защитные меры реализованы в Oracle, а Mozilla намерены уделить больше внимания реализации изоляции сайтов. Эти шаги призваны снизить риск, однако не устраняют угрозу полностью.

Эксплуатацию усложняют аппаратные средства защиты потока управления, такие как IBT на x86 и BTI на Arm, однако они не ликвидируют угрозу полностью. Старые процессоры Intel всё ещё могут спекулятивно выполнять инструкции до завершения проверки IBT, что оставляет окно для использования BTR. Эту возможность объясняют тем, что безопасная архитектура Lion Cove (Core Ultra 200 серий Arrow Lake и Lunar Lake) устранила подобное поведение, но даже без обгона IBT оборона может обходиться при отключённой маскировке констант.

AMD заявила, что новых уязвимостей в чипах компании выявлено не было; по их словам, описанный метод BTR нейтрализуется существующими рекомендациями по защите от Spectre v2. Комментариев от Intel и Arm на данный момент не поступало.

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