Домой Софт Безопасность Новая уязвимость Spectre-v2 BTR позволяет извлекать данные из памяти ядра Linux

Новая уязвимость Spectre-v2 BTR позволяет извлекать данные из памяти ядра Linux

Исследователи безопасности представили атаку Branch Target Reuse, использующую ошибки предсказания переходов процессора для чтения данных из ядра Linux через cBPF.

2
0

Группа экспертов по кибербезопасности из Vrije Universiteit Amsterdam (VUSec) и Scuola Superiore Sant’Anna сообщила об обнаружении нового метода атаки класса Spectre-v2, получившего название Branch Target Reuse (BTR). Данная уязвимость позволяет злоумышленникам эксплуатировать остаточные данные предсказания ветвлений процессора для утечки конфиденциальной информации из систем на базе Linux.

Схема работы спекулятивного выполнения и предсказания ветвлений

Принцип действия и технические аспекты уязвимости BTR

Метод BTR ориентирован на среды, в которых код генерируется динамически, включая JIT-компиляторы. В ходе исследования эксперты сосредоточились на классическом BPF (cBPF) и разработали два сценария полноценного эксплойта. В основе атаки лежит особенность современных процессоров, стремящихся предсказать дальнейший путь выполнения программы для оптимизации производительности. Если предсказание сохраняется в кэше процессора после удаления исходного кода и последующего повторного использования той же области памяти, процессор может ошибочно выполнить новый код из некорректного местоположения.

Хотя результаты спекулятивного выполнения впоследствии отбрасываются, следы, остающиеся в кэше, позволяют восстановить данные, которые должны быть недоступны пользователю. В рамках демонстрации на современных процессорах Intel исследователям удалось с помощью cBPF читать произвольные участки памяти. Скорость извлечения данных при этом составила около 8 байт в секунду, что позволило успешно получить хеш пароля суперпользователя (root) из памяти процесса su.

Ограничения атаки и затронутые архитектуры

Эксперты подчеркивают, что BTR не является инструментом для удаленного взлома Linux-систем. Для проведения атаки необходимо наличие прав на выполнение непривилегированного кода в целевой среде, а результатом операции является лишь хеш, а не открытый пароль. Важным обстоятельством является то, что отключение непривилегированного eBPF не устраняет уязвимость, так как cBPF продолжает использоваться в Linux для работы таких механизмов, как seccomp, фильтрация сокетов, а также в составе Docker и браузера Chrome.

В ходе тестирования исследователи также проверили устойчивость движка SpiderMonkey в Firefox и среды GraalVM от Oracle. В Firefox метод был продемонстрирован через WebAssembly, однако полноценный эксплойт для браузера создан не был. В случае с GraalVM была выявлена подверженность воздействию, но внутренние особенности работы среды предотвратили практическую реализацию атаки. Хотя необходимое для BTR поведение процессора наблюдалось на архитектурах Intel, AMD и Arm, текущий рабочий эксплойт для Linux cBPF нацелен именно на системы Intel.

Меры защиты и исправления в ядре Linux

Для противодействия угрозе в ядро Linux были внесены соответствующие защитные механизмы. Разработчики реализовали принудительную очистку состояния предсказания ветвлений при повторном использовании памяти BPF JIT, а также внедрили дополнительные меры защиты от так называемого JIT-спреинга. Указанные исправления зафиксированы в рамках идентификаторов CVE-2026-64507 и CVE-2026-64508. Пользователям систем рекомендуется убедиться в актуальности установленных обновлений безопасности.

Источник: https://linuxiac.com