Исследователи из Калифорнийского университета в Сан-Диего представили новый метод атаки на микроархитектурные структуры процессоров Intel, применимый среди прочего к CPU на базе микроархитектур Raptor Lake и Alder Lake. Атака, которая получила кодовое имя Indirector, позволяет добиться изменения хода спекулятивного выполнения инструкций в других процессах и на других уровнях привилегий (например в ядре или другой виртуальной машине), выполняемых в одном потоке CPU с кодом атакующего. В качестве демонстрации работы метода подготовлен прототип эксплоита, позволяющий определить раскладку адресов памяти для обхода механизма защиты ASLR (Address Space Layout Randomization). Кроме того, под лицензией MIT опубликован инструментарий, разработанный для анализа и обратного инжиниринга микроархитектурной логики CPU.
Предложено два метода организации атаки. Первый способ основан на искажении содержимого буфера предсказания косвенных переходов IBP (Indirect Branch Predictor), используемого для предсказания косвенных переходов в условиях, когда адрес или смещение для перехода ещё не известны и вычисляются в инструкциях, предшествующих инструкции перехода. Второй метод затрагивает буфер предсказания переходов BTB (Branch Target Buffer), содержащий информацию о недавних переходах.
Выявленные уязвимости дают возможность атакующему определить содержимое записей в буферах IBP и BTB, содержащие адреса переходов, используемые в сторонних процессах, а также осуществить подстановку произвольного адреса перехода в таблицы данных буферов. В итоге атакующий может добиться перенаправления потока выполнения стороннего процесса на желаемый адрес в памяти в ходе спекулятивного выполнения инструкций. После определения ошибочного прогноза результат спекулятивного выполнения отбросится, но адреса и данные, считанные из памяти в процессе спекулятивного выполнения инструкций, осядут в кэше и их можно будет извлечь, воспользовавшись одним из способов определения содержимого кэша на основе анализа изменения времени доступа к прокэшированным и не прокэшированным данным. Определение точных адресов косвенных переходов на практике, например, можно использовать для обхода механизма защиты ASLR.