
Preuve de concept basée sur Docker démontrant la CVE-2025-23320 dans le serveur d'inférence NVIDIA Triton, exploitant la fuite de clés de mémoire partagée pour déclencher une écriture hors limites via une condition de course entre désenregistrement et enregistrement.
Démonstration de CVE-2025-23320
Ce dépôt reproduit CVE-2025-23320, démontrant CWE-209, Génération d'un message d'erreur contenant des informations sensibles (Score CVSS : 7.5). Cette vulnérabilité existe sur tous les serveurs d'inférence NVIDIA Triton version 25.06 et antérieures.
Cette configuration docker exécute un réseau contenant un serveur d'inférence NVIDIA Triton et un client attaquant. Cet environnement garantit également que le client s'exécute sous Linux, afin que la CVE soit reproductible sur tous les systèmes d'exploitation.
Pour construire/exécuter
docker compose --build-no-cache
S'il s'agit de la première exécution, cela peut prendre un certain temps, car cela télécharge l'image du serveur NVIDIA Triton version 25.06 depuis GitHub.
Ensuite :
docker compose up
POC
Le script du client attaquant est exécuté automatiquement, affichant un message d'erreur sous la forme : Échec de l'augmentation de la taille du pool de mémoire partagée pour la clé 'triton_python_backend_shm_region_8a463f1a-fcd6-4c1b-b4b5-df63f9c512ad' à 54525952 octets.
Après avoir obtenu cette clé, un attaquant peut effectuer de nombreuses actions. Dans notre implémentation de code, l'attaquant a utilisé l'API unregister de Triton. Étant donné que Triton ne vérifie pas qui invoque cette API, la fonction s'exécutera. Si l'attaquant utilise ensuite la fonction register, déclenchant avec succès une condition de concurrence, cela entraînera une écriture hors limites (OOB).