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

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

- Канонический HTML: [/incidents/leftoverlocals-gpu-memory-leak](https://ai-first.tech/incidents/leftoverlocals-gpu-memory-leak)
- Язык: русский
- Редакционный принцип: защитный контекст без вредоносных полезных нагрузок и инструкций обхода.

- Дата: 2024-01-16
- Категория: Уязвимость платформы
- Затронуто: GPU AMD, Apple, Qualcomm и Imagination Technologies; приложения, выполняющие LLM на общих ускорителях
- Критичность: Средний
- CVE: CVE-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 с рекомендацией обновить драйверы и прошивки.

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

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

## Меры защиты

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

Связанные карточки угроз: A31, A10, A14

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

- [LeftoverLocals: Listening to LLM responses through leaked GPU local memory](https://blog.trailofbits.com/2024/01/16/leftoverlocals-listening-to-llm-responses-through-leaked-gpu-local-memory/) — Trail of Bits
- [VU#446598: GPU kernel implementations susceptible to memory leak](https://kb.cert.org/vuls/id/446598) — CERT/CC
