LINUX.ORG.RU
ФорумTalks

Во всех чипах AMD на Zen 2 нашли уязвимость, которая позволяет удалённо воровать пароли и другую информацию

 ,


1

4

Тэвис Орманди (Tavis Ormandy), исследователь из Google Information Security, сообщил сегодня о новой уязвимости, которую он обнаружил в процессорах AMD с архитектурой Zen 2. Уязвимость Zenbleed охватывает весь ассортимент чипов на Zen 2 и позволяет украсть защищённую информацию, включая ключи шифрования и логины пользователей. Атака не требует физического доступа к компьютеру и может быть выполнена даже через вредоносный JS-скрипт на веб-странице.Орманди сообщил об этой проблеме в AMD 15 мая 2023 года. По его словам, AMD уже выпустила патчи для уязвимых систем, но эксперты пока не подтвердили наличие в последних выпущенных прошивках нужных исправлений. Также пока отсутствуют рекомендации по безопасности от AMD с подробным описанием проблемы. Компания обещала опубликовать эту информацию сегодня, но пока не прокомментировала статус исправлений.

Уязвимость зарегистрирована как CVE-2023-20593 и позволяет осуществлять кражу данных со скоростью 30 Кбайт на ядро в секунду, что обеспечивает достаточную пропускную способность для кражи конфиденциальной информации, проходящей через процессор. Эта атака работает со всем программным обеспечением, запущенным на процессоре, включая виртуальные машины, песочницы, контейнеры и процессы. Способность этой атаки считывать данные между виртуальными машинами особенно опасна для поставщиков и пользователей облачных услуг.

По словам Орманди, затронуты все процессоры Zen 2, включая серверные EPYC Rome:

Процессоры AMD Ryzen 3000;

Процессоры AMD Ryzen PRO 3000;

Процессоры AMD Ryzen Threadripper 3000;

Процессоры AMD Ryzen 4000 с графикой Radeon;

Процессоры AMD Ryzen PRO 4000;

Процессоры AMD Ryzen 5000 с графикой Radeon;

Процессоры AMD Ryzen 7020 с графикой Radeon;

Процессоры AMD EPYC Rome.

Атака может быть осуществлена посредством выполнения непривилегированного произвольного кода. Орманди опубликовал репозиторий исследований безопасности и код эксплойта. При атаке используется функция оптимизации слияния XMM регистра с последующим его переименованием. В результате происходит ошибка предсказания vzeroupper. Основные операции, такие как strlen, memcpy и strcmp, будут использовать векторные регистры, поэтому злоумышленник может эффективно отслеживать эти операции, происходящие в любом месте системы, неважно, в других виртуальных машинах, песочницах, контейнерах или процессах.

«Это работает, потому что регистровый файл используется всеми на одном физическом ядре. На самом деле два гиперпотока даже используют один и тот же файл физического регистра», — говорит Орманди. Он пояснил, что ошибка может быть исправлена с помощью патчей, но это может привести к снижению производительности, поэтому Орманди настоятельно рекомендует обновить микрокод. Доступность обновлённых прошивок пока официально не подтверждена.

★★★★★

Последнее исправление: vasya_pupkin (всего исправлений: 1)

И эти люди своей дезой мешают нам использовать кластер из нескольких Pentium1 вперемешку с ARM v5-v7 (armel, armhf) на OpenBSD, и даже запрещают нам ковыряться в носу (кстати действительно не стоит по крайне мере грязными руками).

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)

Получается перекомпилять всё с -O0 -msse2 -msse и в безопасности :D ))))

Какая это по счёту аппаратная уязвимость среди спекулятивного выполнения и механизма предсказания ветвления вообще во всех современных процессорах? Сотая?

А вот если бы процессор был написан на Rust…. кек.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от token_polyak

138 Гигабит в неделю на одно ядро.

imul ★★★★★
()

30 Кбайт на ядро в секунду

А в процентах… точнее, в тысячных долях процента, это…?

pekmop1024 ★★★★★
()

Собрал их PoC (https://github.com/google/security-research/tree/9e2171b05899b95f2d5ecc26b50987b30b2a4535/pocs/cpus/zenbleed), запустил, и неудивительно, оно абсолютно ничего не находит. У меня процессор AMD Ryzen 7 PRO 5850U, ядро 6.4.4.

Опять обманули?

rupert ★★★★★
()
Последнее исправление: rupert (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

У меня Phenom2 я в безопасности все CVE по нему в музеях :D

У меня Athlon (не помню какой) лежит вместе с матерю на полке. Я тоже в безопастности :)

anc ★★★★★
()
Ответ на: комментарий от rupert

Уязвимость Zenbleed охватывает весь ассортимент чипов на Zen 2.

gag ★★★★★
()

mitigations=on ! задраить люки!))))

Вообще эпичная дырень, круто.

Anoxemian ★★★★★
()
Последнее исправление: Anoxemian (всего исправлений: 1)
Ответ на: комментарий от ox55ff

Погоди, релизнут Zen4,5, etc.

Найдутся и в третьем и в четвертом и т.д.

sanyo1234
()

Тэвис Орманди

Как всегда, хорошее начало новости

t184256 ★★★★★
()
Ответ на: комментарий от rupert

Запустил. Оно выдрало строчки из других процессов.

Страшно. И это на машине с mitigations=on. ._. (впрочем логично что они не спасут от zenbleed)

a1ba
()
Последнее исправление: a1ba (всего исправлений: 1)
Ответ на: комментарий от anc

Подать пример как правильно использовать это железо, вместо складывания его на полку.

firkax ★★★★★
()
Ответ на: комментарий от rupert

Zen3 у тебя, хотя какая должна быть разница

One ★★★★★
()
Ответ на: комментарий от cobold

Процессор на zen2 вообще без SMT, zenbleed все равно что-то выдает.

pandrey ★★
()
Ответ на: комментарий от rupert
zenbleed$ make
cc -O0 -ggdb3 -march=znver2  -pthread -Wl,-z,noexecstack  zenbleed.c zenleak.o pattern.o workqueue.o util.o   -o zenbleed
zenbleed$ ./zenbleed 
*** EMBARGOED SECURITY ISSUE --  DO NOT DISTRIBUTE! ***
ZenBleed Testcase -- taviso@google.com

NOTE: Try -h to see configuration options

Spawning 6 Threads...
Недопустимая инструкция
zenbleed$ #ГГ ВП хакайте меня полностью, нет инструкций, нет проблем :D
- -march=znver2
+ -march=native
Spawning 6 Threads...
Thread 0x7efc41b506c0 running on CPU 0
Thread 0x7efc4134f6c0 running on CPU 1
Thread 0x7efc38b4e6c0 running on CPU 2
Недопустимая инструкция

Я сомневался, но теперь уверен мой феном бронебойный щит нет не shit!

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Так там нету 256-битных регистров, они у интела где-то в 2013 что ли появились, у амд ещё позже.

firkax ★★★★★
()

В Дебиан уже обновили микрокод:

amd64-microcode (3.20230719.1) unstable; urgency=high

  * Update package data from linux-firmware 20230625-39-g59fbffa9:
    * Fixes for CVE-2023-20593 "Zenbleed" on AMD Zen2 processors
      (closes: #1041863)
...
 -- Henrique de Moraes Holschuh <hmh [at] debian [dot] org>  Mon, 24 Jul 2023 13:07:34 -0300
gag ★★★★★
()
Ответ на: комментарий от Meyer

В оригинале Ryzen 5000 Series Mobile «Lucienne», это zen2

One ★★★★★
()

Орманди настоятельно рекомендует обновить микрокод

Как это сделать? Кто делал? У меня также есть ryzen 5 2600 второй сис-блок, пока не активно его использую. Но что, эта уязвимость на этот раз просто патчем ядра Linux не лечится? А предыдущие уязвимости тоже можно было также исправить микрокодом?

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Как это сделать? Кто делал?

Удваиваю этого джентльмена. Мне на убунте LTS прилетело обновление amd64-microcode, но zenbleed почему-то всё равно работает (5500U).

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

Стоп, раз 5-2600, то не релевантно для меня. Речь получается про 3000 и выше. Но в целом, всем знать это полезно

Если пакет обновления прилетает, то получается из user space, без всяких биосов, это может быть обновлено

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

раз 5-2600, то не релевантно для меня

Похоже на то. На 3400G (Zen+) не работает. Можно перестать трястись %)

Ну ладно, ладно, трястись, но поменьше.

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

прилетело обновление amd64-microcode, но zenbleed почему-то всё равно работает (5500U)

Ага, в чейнджлоге пока только 4 модели, ждём ебилдов милостей от природы.

Nervous ★★★★★
()

Интересно девки пляшут. Давно такого факапа не было, на фоне его кажется прошлые интеловские ошибки не настолько серьёзно выглядят в плане практического использования. А тут запустил ./zenbleed и пожалте бриться. Вовсе не бит в неделю. Реально поток приличный, чтобы забеспокоиться.

https://github.com/google/security-research/tree/master/pocs/cpus/zenbleed

Попутно обнаружил интересную особенность работы с wrmsr регистрами. На хабре https://habr.com/ru/companies/dcmiran/news/750152/ прочитал, что если нет исправления (прошивки, микрокода, etc) то может помочь, хотя и ценой некоторой потери производительности, установка регистра

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

И действительно помогает. Но бит сбрасывается не только после перезагрузки, но и после выхода из suspend режима. То есть, pm-suspend, вышли - и снова уязвимость работает. Не знал.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от Nervous

надо глянуть, как оно там

Никаких отключений mitigations в конфиге груба нет. Кому-нибудь помогло обновление микрокода на Ryzen 5 5500U? @vazgen05?

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

Посмотри патч, там новый микрокод всего для двух моделей процессора. Естественно, если у тебя модель и степпинг не совпадают, то и работать не будет.

Family 0x17h, Model 0x31h, Stepping 0x00h
Family 0x17h, Model 0xa0h, Stepping 0x00h

Khnazile ★★★★★
()
Последнее исправление: Khnazile (всего исправлений: 1)
Ответ на: комментарий от Khnazile

Да, ноутохолопы ждут декабря.

https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7008.html#mitigation

Там ещё пишут, что нужно будет BIOS обновлять. Интересно, получится ли отделаться просто обновлением микрокода (если, конечно, AMD такой вариант вообще предоставит для кого-то кроме серверобояр).

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 2)
Ответ на: комментарий от Nervous

А то, что в ядро добавили

    x86/cpu/amd: Add a Zenbleed fix

    Add a fix for the Zen2 VZEROUPPER data corruption bug where under
    certain circumstances executing VZEROUPPER can cause register
    corruption or leak data.
    
    The optimal fix is through microcode but in the case the proper
    microcode revision has not been applied, enable a fallback fix using
    a chicken bit.

не должно помочь? Никому не прилетело (ну кроме арчеводов)?

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)

если secret feature становится достоянием общественности её быстро переименуют в уязвимость.

anonymous2 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)