Autrefois appelé Nvidia Docker, le service Container Toolkit (NCT) du fournisseur comprend une faille importante. La CVE-2024-0132 affiche un score de gravité (CVSS) de 9 sur 10. Un utilisateur ou une application malveillante peut s’évader de leur conteneur dédié et gagner un accès complet à l’hôte sous-jacent. « Nvidia Container Toolkit 1.16.1 ou antérieur contient une vulnérabilité TOCTOU (Time-of-check Time-of-Use) de l'heure de vérification à l'heure d'utilisation quand il fonctionne avec la configuration par défaut, où une image de conteneur spécifiquement élaborée peut accéder au système de fichiers de l'hôte », a expliqué le fournisseur dans une note sur le correctif publiée dans son bulletin de sécurité. De plus, dans certaines circonstances, l'exploitation réussie de la vulnérabilité entraîne l'exécution de code, le déni de service, l'escalade des privilèges, la divulgation d'informations et l'altération des données.
Vulnérabilité Time of Check Time of Use (TOCTOU)
Les conteneurs Nvidia, qui sont des logiciels spécialisés conçus pour faciliter le déploiement d'applications impliquant de l’intelligence artificielle et de l'apprentissage machine, s’appuient sur NCT pour accéder au matériel GPU. C’est grâce aux outils et aux bibliothèques du Toolkit que les applications s'exécutant dans les conteneurs peuvent utiliser le GPU. La démonstration a été faite dans un billet de blog de Wiz Research, dont les chercheurs ont été crédités par Nvidia de la découverte de la faille. Les attaquants contrôlant une image de conteneur exécutée par une boîte à outils, autrement dit un paquet exécutable léger et autonome contenant tout ce qui est nécessaire pour exécuter une application, peuvent s'évader du conteneur et obtenir un accès complet à l'hôte.
Cette condition de concurrence appelée « Time-of-check Time-of-Use » se produit lorsqu'un programme vérifie une condition et utilise ensuite le résultat de cette vérification sans s'assurer que la condition n'a pas changé dans l'intervalle. Même si les détails techniques spécifiques de l'exploitation potentielle n'ont pas été divulgués pour des raisons de sécurité, le blog Wiz a partagé un flux d'attaque potentiel. « L'attaquant crée une image spécialement conçue pour exploiter la faille CVE-2024-0132 », ont écrit les chercheurs dans le blog. « L'attaquant exécute l'image malveillante sur la plateforme cible, soit directement dans les services permettant le partage des ressources GPU, soit indirectement par le biais d'une supply chain ou d'une attaque d'ingénierie sociale, par exemple un utilisateur exécutant une image d'IA à partir d'une source non fiable. »
Dans quels cas appliquer les correctifs ?
Comme indiqué dans les notes de correction, la vulnérabilité dite d’évasion des conteneurs affecte toutes les versions de Nvidia Container Toolkit jusqu'à la version v1.16.1 incluse. Selon les chercheurs de Wiz, le Toolkit est très répandu et la faille pourrait affecter 35 % des environnements cloud. « Cette bibliothèque est largement adoptée comme solution pour accéder au GPU Nvidia depuis les conteneurs », ont ajouté les chercheurs. « De plus, elle est préinstallée dans de nombreuses plateformes d'IA et images de machines virtuelles (comme les Amazon Machine Images, AMI), car il s'agit d'une exigence d'infrastructure commune pour les applications d'IA. »
Pour les environnements partagés comme Kubernetes, le bug peut être exploité pour s'échapper d'un conteneur et accéder aux données et aux secrets sur d'autres « applications exécutées sur le même nœud, voire sur le même cluster », exposant ainsi l'ensemble de l'environnement. Il est donc recommandé aux entreprises utilisant un modèle de calcul partagé de mettre immédiatement à jour la boîte à outils. « Un attaquant pourrait déployer un conteneur nuisible, s'en échapper et utiliser les secrets de la machine hôte pour cibler les systèmes de contrôle du service cloud », ont mis en garde les chercheurs. « Un attaquant pourrait alors accéder à des informations sensibles, comme le code source, les données et les secrets d'autres clients utilisant le même service ». L'entreprise a précisé que la vulnérabilité n'avait pas d'incidence sur les cas d’usage impliquant l'interface CDI (Container Device Interface). Pour tous ceux qui souhaitent utiliser la boîte à outils Nvidia Container, un correctif est désormais disponible.