کشف آسیب‌پذیری از طریق PyNcclPipe و TCPStore در vLLM

کشف آسیب‌پذیری از طریق PyNcclPipe و TCPStore در vLLM

تاریخ ایجاد

vLLM یک موتور استنتاج و سرویس‌دهی برای مدل‌های زبانی بزرگ است که با هدف ارائه عملکرد بالا و بهره‌وری حافظه طراحی شده است. این سیستم با بهره‌گیری از تکنیک‌هایی مانند PagedAttention، امکان مدیریت مؤثر حافظه‌ی کش را فراهم می‌کند و استنتاج را در محیط‌های چند GPU و چند گره‌ای تسهیل می‌نماید.

اخیراً آسیب‌پذیری بحرانی با شناسه‌ی CVE-2025-47277 در vLLM با شدت 9.8 شناسایی شده است که به مهاجمان امکان اجرای کد از راه دور را می‌دهد. این مشکل ناشی از پیکربندی نادرست TCPStore در PyTorch است که به‌طور پیش‌فرض، حتی زمانی که IP خاصی از طریق پارامتر --kv-ip مشخص شده باشد، روی تمامی رابط‌های شبکه گوش می‌دهد. در نتیجه، کلاس PyNcclPipe در vLLM که برای انتقال حافظه کش بین گره‌ها استفاده می‌شود، ممکن است در معرض دسترسی‌های غیرمجاز قرار گیرد.

 

جزئیات آسیب‌پذیری

vLLM از کلاس PyNcclPipe برای انتقال داده‌های حافظه کش (KV cache) بین گره‌های توزیع‌شده استفاده می‌کند. این انتقال شامل موارد زیر است:

  • انتقال سمت GPU: از طریق کلاس PyNcclCommunicator
  • انتقال سمت CPU: از طریق متدهای send_obj و recv_obj

هدف این طراحی، محدود کردن ارتباط به شبکه‌های خصوصی با استفاده از پارامتر --kv-ip بود. با این حال، رفتار پیش‌فرض PyTorch در TCPStore به‌گونه‌ای است که روی تمام رابط‌های شبکه گوش می‌دهد، صرف‌نظر از IP مشخص‌شده. این موضوع منجر به در معرض قرار گرفتن ناخواسته سرویس در شبکه‌های عمومی می‌شود.

علاوه بر این، PyNcclPipe داده‌های دریافتی را مستقیماً با استفاده از pickle.loads پردازش می‌کند، که در صورت دریافت داده‌های مخرب، امکان اجرای کد دلخواه را برای مهاجم فراهم می‌سازد.

بردار CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H نشان‌دهنده یک آسیب‌پذیری با شدت بالا است که از راه دور و بدون نیاز به احراز هویت یا تعامل با کاربر قابل بهره‌برداری می‌باشد. در این حالت، مهاجم می‌تواند بدون داشتن دسترسی قبلی و تنها از طریق شبکه، حمله‌ای را با پیچیدگی کم انجام دهد که منجر به افشای کامل اطلاعات، تغییر یا تخریب داده‌ها و اختلال کامل در دسترسی به منابع سیستم می‌شود. این نوع آسیب‌پذیری‌ها به دلیل سهولت در بهره‌برداری و تأثیرات گسترده‌ای که بر محرمانگی، یکپارچگی و دسترسی‌پذیری سیستم دارند، بسیار خطرناک هستند.

 

نسخه‌های تحت تأثیر

  • این آسیب‌پذیری نسخه‌های 0.6.5 تا 0.8.4 را تحت تأثیر قرار می‌دهد.

 

توصیه‌های امنیتی

  • به‌روزرسانی vLLM به نسخه‌ی 0.8.5 یا بالاتر، که در آن TCPStore به‌طور خاص به رابط شبکه خصوصی محدود شده است.
  • اطمینان از اینکه سرویس‌های PyNcclPipe فقط در شبکه‌های داخلی و ایمن قابل دسترسی هستند.
  • بررسی پیکربندی PyTorch و اطمینان از عدم گوش دادن TCPStore روی تمام رابط‌های شبکه.

 

منابع خبر:

[1]https://www.cvedetails.com/cve/CVE-2025-47277

[2]https://nvd.nist.gov/vuln/detail/CVE-2025-47277

[3]https://github.com/advisories/GHSA-hjq4-87xh-g4fv