Специалисты Швейцарской высшей технической школы Цюриха (ETH Zurich) обнаружили проблему, которая угрожает всем современным процессорам Intel. Баг позволяет злоумышленникам извлекать конфиденциальные данные из памяти, выделенной привилегированным компонентам системы, например, ядру ОС.
Обычно эти области памяти содержат такую информацию, как пароли, криптографические ключи, память других процессов и структуры данных ядра, поэтому крайне важно обеспечить их защиту от утечки.
По словам исследователей, средства защиты от уязвимости Spectre v2 продержались около шести лет, но новая атака Branch Predictor Race Conditions (использование состояния гонки в предсказателе ветвлений) позволяет их обойти.
Связанную с этим уязвимость эксперты назвали «branch privilege injection» (инъекция привилегий в предсказатель ветвлений) и она получила идентификатор CVE-2024-45332. Эта проблема провоцирует состояние гонки в подсистеме предсказателей ветвлений, используемой в процессорах Intel.
Предсказатели ветвлений, такие как Branch Target Buffer (BTB) и Indirect Branch Predictor (IBP), представляют собой аппаратные компоненты, которые стремятся предугадать результат выполнения инструкции ветвления до ее завершения, с целью оптимизации производительности. Такие предсказания являются спекулятивными, то есть отменяются, если оказываются неверными. Однако если они верны, это помогает улучшить производительность.
Исследователи обнаружили, что обновления предсказателя ветвлений в процессорах Intel не синхронизированы с выполнением инструкций, из-за этого они могут «просачиваться» через границы привилегий. Так, если происходит переключение привилегий (например, из пользовательского режима в режим ядра), возникает небольшое окно возможностей, в течение которого обновление может быть связано с неправильным уровнем привилегий.
В результате нарушается изоляция между пользователем и ядром, и непривилегированный пользователь получает возможность слить данные привилегированных процессов.
Эксперты создали PoC-эксплоит, который обучает процессор предсказывать определенную цель ветвления, затем выполняет системный вызов, чтобы переместить выполнение в ядро ОС, что приводит к спекулятивному выполнению с использованием контролируемой злоумышленником цели (гаджета). Затем код обращается к секретным данным в кеше, используя side-channel методы, и информация передается злоумышленнику.
Исследователи продемонстрировали свою атаку на Ubuntu 24.04 с включенными по умолчанию защитными механизмами для чтения содержимого файла /etc/shadow/, содержащего хешированные пароли учетных записей. Эксплоит позволяет достичь пиковой скорости извлечения данных 5,6 КБ/с и демонстрирует точность 99,8%.
Хотя атака была продемонстрирована на примере Linux, проблема присутствует на аппаратном уровне, поэтому теоретически может использоваться и против Windows-систем.
Сообщается, что уязвимость CVE-2024-45332 затрагивает все процессоры Intel, начиная с девятого поколения (Coffee Lake, Comet Lake, Rocket Lake, Alder Lake и Raptor Lake).
Исследователи не тестировали более старые процессоры, но поскольку они не поддерживают Enhanced Indirect Branch Restricted Speculation (eIBRS), они вряд ли подвержены этому эксплоиту. Большую опасность для них представляют старые атаки, подобные Spectre v2.
Также были изучены чипы Arm Cortex-X1, Cortex-A76 и AMD Zen 5 и Zen 4, но они оказались неподвержены CVE-2024-45332.
Исследователи сообщили о своих выводах инженерам Intel еще в сентябре 2024 года, и компания выпустила обновления микрокода, устраняющие проблему CVE-2024-45332.
Сообщается, что патчи на уровне прошивки снижают производительность на 2,7%, а программные патчи снижают производительность на 1,6-8,3% в зависимости от процессора.
Специалисты ETH Zurich сообщили, что представят свой эксплоит во всех подробностях, когда выступят с докладом на конференции USENIX Security 2025.