Уязвимость платформы · 16 января 2024

LeftoverLocals: ответы LLM можно было прочитать из памяти GPU другого процесса

Исследователи Trail of Bits показали, что ряд GPU не очищает локальную память между запусками вычислительных ядер. Процесс на том же ускорителе мог прочитать остатки чужих данных и восстановить ответы языковой модели другого пользователя. NVIDIA, ARM и Intel не затронуты, часть вендоров выпустила исправления.

Иллюстрация к инциденту «LeftoverLocals: ответы LLM можно было прочитать из памяти GPU другого процесса»
ЗатронутоGPU AMD, Apple, Qualcomm и Imagination Technologies; приложения, выполняющие LLM на общих ускорителях
КритичностьСредний
Дата16 января 2024
CVECVE-2023-4969

Что произошло

16 января 2024 года Trail of Bits и CERT/CC раскрыли уязвимость CVE-2023-4969 под названием LeftoverLocals. Исследователи уведомили вендоров через CERT/CC в сентябре 2023 года и дали 125 дней на исправление. На видеокарте AMD Radeon RX 7900 XT с моделью на 7 млрд параметров утечка составляла около 181 МБ на один запрос к LLM, чего достаточно для восстановления ответа с высокой точностью. Apple исправила проблему в чипах A17 и M3 и части устройств, Imagination — в DDK 23.3, Qualcomm выпустила обновление прошивки для части устройств. AMD на момент раскрытия изучала способы защиты.

Где нарушилась защита

Локальная память GPU используется как программно управляемый кэш и не очищается между вычислительными ядрами разных процессов. Граница изоляции между процессами и контейнерами, на которую рассчитывают облачные и многопользовательские среды, на этих GPU не распространялась на локальную память. Злоумышленник с правом запускать свой код на том же GPU мог читать остатки данных чужих вычислений, включая промежуточные данные инференса LLM.

Последствия

  • Возможность восстановить ответы LLM другого пользователя при совместном использовании GPU
  • Затронуты GPU четырёх вендоров в настольных, мобильных и встраиваемых устройствах
  • Исправления выпущены не для всех затронутых устройств на момент раскрытия

Реакция

Apple, Imagination и Qualcomm выпустили исправления для части устройств, AMD объявила о работе над мерами защиты. CERT/CC опубликовала бюллетень VU#446598 с рекомендацией обновить драйверы и прошивки.

Уроки для бизнеса

  1. Изоляция контейнеров и процессов не гарантирует изоляцию данных на ускорителях
  2. Совместное использование GPU разными клиентами или задачами создаёт отдельный канал утечки
  3. Конфиденциальность инференса зависит от аппаратного и драйверного уровня, а не только от приложения

Меры, которые предотвратили бы инцидент

  • Выделенные GPU для обработки конфиденциальных данных без совместного использования с недоверенными задачами
  • Своевременное обновление драйверов и прошивок GPU по бюллетеням вендоров
  • Учёт модели угроз совместных ускорителей при выборе облачного или on-premise инференса
  • Требования к провайдерам GPU-облаков по изоляции памяти между клиентами
Проверка фактов

Первоисточники

Trail of Bits · 2024-01-16LeftoverLocals: Listening to LLM responses through leaked GPU local memoryCERT/CC · 2024-01-16VU#446598: GPU kernel implementations susceptible to memory leak