Branch Privilege Injection затрагивает все CPU с 9-го поколения.
Команда ETH Zurich обнаружила новую уязвимость архитектурного уровня во всех современных процессорах Intel, начиная с девятого поколения. Проблема получила название «Branch Privilege Injection» и отслеживается под идентификатором CVE-2024-45332 . Она позволяет злоумышленникам извлекать чувствительную информацию из привилегированных областей памяти, включая данные ядра операционной системы, пароли, криптографические ключи и содержимое других процессов.
Проблема связана с механизмом предсказания переходов, таким как Branch Target Buffer (BTB) и Indirect Branch Predictor (IBP), которые ускоряют выполнение команд за счёт предугадывания направления переходов в коде. Эти предсказания выполняются спекулятивно, и, если оказываются ошибочными, откатываются. Однако ETH Zurich показала, что в определённых условиях обновления предсказателя могут происходить не в синхроне с фактическим выполнением инструкций, нарушая границы привилегий.
Если в момент обновления предсказателя происходит переключение между пользовательским и привилегированным режимами, например, при системном вызове, возникает краткое окно, в течение которого обновление может быть связано с ошибочным уровнем привилегий. Это даёт злоумышленнику возможность спровоцировать выполнение предсказанного перехода внутри ядра, инициировав чтение защищённых данных с последующей утечкой через побочный канал.
Разработанный исследователями эксплойт способен обучать процессор переходу к заранее подготовленному коду («gadget»), инициируя системный вызов, в результате чего спекулятивное выполнение происходит уже на уровне ядра. В процессе используется чтение секретных данных, загруженных в кэш, а сами данные затем восстанавливаются атакующим через побочные эффекты кэширования.
Экспериментальная реализация атаки показала возможность чтения файла «/etc/shadow» на Ubuntu 24.04 с включёнными защитами. При этом скорость утечки достигала 5,6 КБ/с при точности 99,8%.
Уязвимость затрагивает все процессоры Intel с девятого поколения включительно: Coffee Lake, Comet Lake, Rocket Lake, Alder Lake и Raptor Lake. Специалисты также заметили обход защиты Indirect Branch Prediction Barrier (IBPB) даже на чипах седьмого поколения (Kaby Lake). Более старые архитектуры не были протестированы, но, по мнению исследователей, они скорее уязвимы к классическим атакам, похожим на Spectre v2, поскольку не поддерживают eIBRS.
Дополнительно были изучены процессоры Arm Cortex-X1, Cortex-A76, а также AMD Zen 4 и Zen 5. Ни одна из этих архитектур не проявила аналогичного асинхронного поведения предсказателей, и потому они не подвержены CVE-2024-45332.
Хотя демонстрация уязвимости была проведена на Linux, проблема присутствует на аппаратном уровне, а значит, может быть использована и на Windows. Intel получила уведомление об уязвимости в сентябре 2024 года и уже выпустила обновления микрокода, устраняющие проблему на затронутых моделях.
По данным компании, внедрение защиты на уровне прошивки сопровождается снижением производительности примерно на 2,7%, а программные меры могут замедлить работу системы на 1,6–8,3% в зависимости от конкретного процессора. При этом реальный риск для большинства пользователей остаётся низким — эксплуатация уязвимости требует соблюдения ряда условий. Тем не менее рекомендуется установить актуальные обновления BIOS/UEFI и используемой операционной системы.
Подробности атаки будут представлены на конференции USENIX Security 2025 . Intel в официальном комментарии выразила благодарность команде ETH Zurich за координированное раскрытие и подчеркнула, что реальных случаев эксплуатации CVE-2024-45332 зафиксировано пока не было.