Une nouvelle vulnérabilité baptisée « LeftoverLocals » affectant les unités de traitement graphique d’AMD, Apple, Qualcomm et Imagination Technologies permet de récupérer des données à partir de l’espace mémoire local.
Suivi sous le numéro CVE-2023-4969, le problème de sécurité permet la récupération de données à partir de GPU vulnérables, en particulier dans le contexte des modèles de langage étendus (LLM) et des processus d’apprentissage automatique (ML).
LeftoverLocals a été découvert par Tyler Sorensen et Heidy Khlaaf, chercheurs de Trail of Bits, qui l’ont signalé en privé aux fournisseurs avant de publier un aperçu technique.
Détails de LeftoverLocals
La faille de sécurité provient du fait que certains frameworks GPU n’isolent pas complètement la mémoire et qu’un noyau fonctionnant sur la machine pourrait lire des valeurs dans la mémoire locale écrites par un autre noyau.
Tyler Sorensen et Heidy Khlaaf, chercheurs de Trail of Bits, qui ont découvert et signalé la vulnérabilité, expliquent qu’un adversaire n’a besoin que d’exécuter une application de calcul GPU (par exemple OpenCL, Vulkan, Metal) pour lire les données laissées par un utilisateur dans la mémoire locale du GPU.
« En les utilisant, l’attaquant peut lire les données que la victime a laissées dans la mémoire locale du GPU simplement en écrivant un noyau GPU qui vide la mémoire locale non initialisée » – Trail of Bits
LeftoverLocals permet aux attaquants de lancer un « écouteur » – un noyau GPU qui lit à partir de la mémoire locale non initialisée et peut vider les données dans un emplacement persistant, tel que la mémoire globale.
Si la mémoire locale n’est pas effacée, l’attaquant peut utiliser l’écouteur pour lire les valeurs laissées par le « rédacteur » – un programme qui stocke les valeurs dans la mémoire locale.
L’animation ci-dessous montre comment les programmes writer et listener interagissent et comment ce dernier peut récupérer des données du premier sur les GPU affectés.
The recovered data can reveal sensitive information about the victim’s computations, including model inputs, outputs, weights, and intermediate computations.
In a multi-tenant GPU context that run LLMs, LeftoverLocals can be used to listen in on other users’ interactive sessions and recover from the GPU’s local memory the data from the victim’s « writer » process.
The Trail of Bits researchers have created a proof of concept (PoC) to demonstrate LeftoverLocals and showed that an adversary can recover 5.5MB of data per GPU invocation, depending on the GPU framework.
On an AMD Radeon RX 7900 XT powering the open-source LLM llama.cpp, an attacker can get as much as 181MB per query, which is sufficient to reconstruct the LLM’s responses with high accuracy.
Impact et remédiation
Les chercheurs de Trail of Bits ont découvert CVE-2023-4969 en septembre 2023 et ont informé le CERT / CC pour aider à coordonner les efforts de divulgation et de correction.
Des efforts d’atténuation sont en cours car certains fournisseurs l’ont déjà corrigé tandis que d’autres travaillent toujours sur un moyen de développer et de mettre en œuvre un mécanisme de défense.
Dans le cas d’Apple, le dernier iPhone 15 n’est pas affecté et des correctifs sont devenus disponibles pour les processeurs A17 et M3, mais le problème persiste sur les ordinateurs alimentés par M2.
AMD a informé que les modèles de GPU suivants restent vulnérables alors que ses ingénieurs étudient des stratégies d’atténuation efficaces.
Qualcomm a publié un correctif via le micrologiciel v2.0. 7 qui corrige les restes de locaux dans certaines puces, mais d’autres restent vulnérables.
Imagination a publié un correctif dans DDK v23. 3 en décembre 2023. Cependant, Google a averti en janvier 2024 que certains GPU du fournisseur étaient toujours impactés.
Les GPU Intel, NVIDIA et ARM ont signalé que le problème de fuite de données n’avait pas d’impact sur leurs appareils.
Trail of Bits suggère que les fournisseurs de GPU implémentent un mécanisme d’effacement automatique de la mémoire locale entre les appels du noyau, garantissant l’isolement des données sensibles écrites par un seul processus.
Bien que cette approche puisse entraîner une surcharge de performances, les chercheurs suggèrent que le compromis est justifié compte tenu de la gravité des implications en matière de sécurité.
Parmi les autres mesures d’atténuation potentielles, citons l’évitement des environnements GPU mutualisés dans les scénarios critiques pour la sécurité et la mise en œuvre de mesures d’atténuation au niveau de l’utilisateur.