Специалисты Швейцарской высшей технической школы Цюриха (ETH Zurich) обнаружили, что последние поколения процессоров Intel (включая Xeon) и более старые процессоры AMD в Linux-системах уязвимы перед новыми спекулятивными атаками, которые обходят существующие средства защиты от проблемы Spectre.
Сообщается, что уязвимости затрагивают 12, 13 и 14 поколения процессоров Intel, а также 5 и 6 поколения серверных процессоров Xeon и процессоры Zen 1, Zen 1+ и Zen 2 от AMD.
Новые атаки обходят Indirect Branch Predictor Barrier (IBPB) в x86 процессорах, то есть основной механизм, защищающий от атак, связанных со спекулятивным выполнением.
Специалисты ETH Zurich пишут, что, несмотря на все усилия по предотвращению Spectre-подобных проблем, в последние годы появилось множество вариантов атак, которые обходят существующие средства защиты.
Сами исследователи описали новую межпроцессную атаку (на процессоры Intel) и атаку типа PB-inception (на процессоры AMD), которые позволяют обойти существующие средства защиты и приводят к утечке конфиденциальной информации.
Эксперты продемонстрировали, что новые атаки работают даже в Linux 6.5, которая оснащена защитой IBPB-on-entry, считающейся одним из лучших способов борьбы с эксплуатацией Spctre.
В первом случае атака связана с уязвимостью в микрокоде Intel. Дело в том, что IBPB не полностью аннулирует результаты предсказания переходов (return prediction) после переключения контекста. В результате злоумышленник получает возможность использовать устаревшие предсказаниям и может «слить» конфиденциальную информацию, например хэш пароля root из процесса suid.
Во втором случае на процессорах AMD некорректно используется IBPB-on-entry в ядре Linux, что позволяет предиктору возврата (return predictor) сохранять устаревшие предсказания даже после IBPB. В итоге злоумышленник может спровоцировать утечку привилегированной памяти ядра.
Исследователи пишут, что уведомили Intel и AMD об этих проблемах еще в июне 2024 года.
В ответ в Intel заявили, что уже обнаружили проблему собственными силами и присвоили ей идентификатор CVE-2023-38575. В марте текущего года компания выпустила обновленный микрокод, устраняющий уязвимость, но исследователи отмечают, что патч пока распространился не на все операционные системы (например, не представлен в Ubuntu).
AMD так же подтвердила наличие уязвимости и сообщила, что проблема получила идентификатор CVE-2022-23824. При этом в бюллетене безопасности AMD в качестве уязвимых перечислены и продукты на архитектуре Zen 3, которые не упоминаются в докладе экспертов ETH Zurich.
Также интересно, что в AMD классифицируют эту проблему как программный дефект, а не аппаратный. Сообщается, что специалисты ETH Zurich уже работают с сопровождающими ядра Linux над патчем для процессоров AMD.