Critical Alert CVE-2026-5760 expose l'exécution de code SGLang à distance en utilisant les modèles STTI dans les fichiers GGUF

Publié 6 min de lectura 151 lecture

Une vulnérabilité grave a été révélée dans SGLang qui, s'il est utilisé, permet l'exécution à distance du code sur les serveurs exécutant ce cadre. La référence CVE-2026-5760 a été attribuée et, d'après la note du CVSS publiée, sa sévérité est presque maximale: 9,8 sur 10,0. Concrètement, un attaquant peut forger un fichier modèle au format GGUF qui, lorsqu'il est chargé et utilisé par SGLang, déclenche l'exécution de commandes arbitraires sur l'équipe victime.

Le vecteur d'attaque est basé sur les modèles de moteur Jinja2 qui sont rendus sans les restrictions nécessaires. En particulier, le problème apparaît lorsque SGLang traite le tokenizer. chat _ template parameter inclus dans un GGUF malveillant: ce contenu peut contenir une charge utile de l'injection de template à l'aide du serveur (SSTI) qui, en étant exécuté par l'environnement de template utilisé par SGLang, vous permet d'exécuter le code Python dans le contexte du service. Le Centre de coordination du CERT (CERT / CC) a détaillé ce flux dans son avis, indiquant que le paramètre "/ v1 / reclasser", couramment utilisé pour les tâches de descente dans les pipelines d'inférence.

Critical Alert CVE-2026-5760 expose l'exécution de code SGLang à distance en utilisant les modèles STTI dans les fichiers GGUF
Image générée avec IA.

La séquence par laquelle un attaquant parvient à exécuter son code est simple dans ses étapes : il crée d'abord un fichier GGUF avec un modèle malveillant dans le tokenizer. chat _ template; ce template inclut la phrase de déclenchement qui rend le chemin vulnérable dans le code source - par exemple dans les points d'entrée / openai / server _ rerank. py fichier - il est activé; une fois qu'une victime télécharge et charge ce modèle dans SGLang et un appel au point d'arrivée de reclasser, le moteur de modèle rend le contenu et la charge utile à distance est exécuté, ce qui provoque l'exécution du code SSTI. Cette technique exploite une mauvaise configuration du moteur modèle: jinja2.Environnement () est utilisé sans la boîte de sable appropriée au lieu d'une variante sûre.

Enquêteur Stuart Beck est celui qui a donné ce défaut et l'a notifié; son analyse indique directement l'utilisation d'un environnement Jinja2 non protégé. Pour comprendre pourquoi cela est dangereux, il est nécessaire d'examiner les propositions et attaques précédentes : ce n'est pas la première fois qu'une bibliothèque d'inférence ou un chargeur modèle est exposé pour permettre l'insertion et le rendu de modèles peu fiables. Un cas bien connu a été le surnom de "Lama Drama" (CVE-2024-34359), qui a également permis l'exécution arbitraire de code et a été qualifié avec très haute gravité, et plus récemment des surfaces similaires ont été corrigées dans des projets tels que VLLM (CVE-2025-61620). Des informations techniques sur ces QE sont disponibles dans la base de données nationale sur la vulnérabilité des États-Unis. (NVD): CVE-2024-34359 et CVE-2025-61620.

Ce type d'échec fait partie de la famille d'attaques du SSTI, bien documentée par la communauté de la sécurité. Les modèles de rendu qui permettent des expressions évaluables peuvent devenir des vecteurs d'exécution s'ils ne sont pas correctement isolés; OWASP fournit une explication claire de ce type de problème dans sa section dédiée à l'injection de Temple Server-Side: OWASP - STIS. Pour sa part, la documentation de Jinja2 explique la différence entre les environnements normaux et sandbox conçus pour limiter ce que les modèles peuvent faire: Jinja2 - Environnement immuable.

Que peut faire l'équipement de SGLang? La première et la plus forte chose est d'éviter de charger des modèles d'origines non vérifiées. Les dépôts publics de modèles, comme ceux disponibles chez Hugging Face, facilitent l'expérimentation mais permettent aussi la distribution d'objets malveillants s'ils ne sont pas validés : Le visage qui bat. En parallèle et comme mesure technique immédiate, il est recommandé de remplacer l'utilisation de jinja2. Environnement () avec environnement immuable ou une alternative qui applique des restrictions effectives au contexte de l'exécution des modèles; cette modification empêche les expressions du modèle de déclencher l'exécution du code Python arbitraire.

Bien que la recommandation de modifier l'environnement Jinja2 soit la plus concrète, il convient de compléter cette correction par des pratiques défensives : exécuter des services d'inférence avec des privilèges minimums, les isoler dans des conteneurs ou des environnements dédiés, limiter l'accès au réseau et aux ressources critiques, et vérifier tout modèle téléchargé avant de l'intégrer dans une instance de production. Jusqu'à ce qu'un patch officiel soit disponible, la prudence exige de traiter tout modèle reçu de tiers comme potentiellement dangereux.

Critical Alert CVE-2026-5760 expose l'exécution de code SGLang à distance en utilisant les modèles STTI dans les fichiers GGUF
Image générée avec IA.

L'avis du CERT/CC indique en outre que, pendant le processus de coordination, aucune solution officielle immédiate n'a été obtenue par les responsables, de sorte que l'adoption de mesures d'atténuation locales et de contrôles opérationnels est particulièrement importante à l'heure actuelle. Pour être tenu informé de l'évolution technique, des correctifs et de l'analyse, il convient de suivre les sources officielles du projet et des centres d'intervention en cas d'incident, ainsi que d'examiner les entrées de NVD et les communiqués CERT/CC : CERT.

Dans un écosystème où des cadres de haute performance pour les modèles multimodal et les LLM sont adoptés rapidement, la capacité de charger des modèles externes est une caractéristique puissante qui, cependant, introduit également une surface d'attaque critique si aucune barrière de confiance n'est conçue. La leçon pratique est claire : il ne suffit pas de se fier au format du modèle, il faut contrôler comment ses composants sont interprétés et exécutés.. À court terme, si vous gérez des instances SGLang, évitez de charger des modèles à partir de sources non testées, appliquez une analyse statique lorsque c'est possible et adaptez la configuration Jinja2 pour utiliser des environnements de bac à sable. À moyen terme, la communauté devra intégrer des contrôles plus robustes dans les bibliothèques qui arrêtent et rendent les données incluses dans les modèles GGUF afin que ces vecteurs ne soient pas réutilisables.

Si vous souhaitez approfondir les concepts techniques ci-dessus, consultez la documentation officielle de Jinja2 sur les environnements sûrs, l'explication de l'OWASP sur les entrées de STI et NVD liées aux vulnérabilités d'exécution à distance précédentes dans les bibliothèques d'inférence : les liens cités dans le texte offrent un bon point de départ pour comprendre la portée et l'atténuation de ce type de menace.

Couverture

Autres

Plus de nouvelles sur le même sujet.