یک آسیبپذیری امنیتی در کتابخانه Deep Graph Library (DGL) تا نسخه 2.1.0 شناسایی شده است که امکان اجرای کد از راه دور (Remote Code Execution یا RCE) را فراهم میکند. این نقص امنیتی در تابع load_info/_read_torch_data در فایل utils.py رخ میدهد.
تحلیل فنی آسیبپذیری
این مشکل از نوع Unsafe Deserialization است و با شناسهی CWE-502 شناخته میشود. در این سناریو، کتابخانه DGL ورودیهای کاربر (مسیر فایل یا path) را بدون اعتبارسنجی کافی به تابع torch.load ارسال میکند. از آنجایی که torch.load در پسزمینه از مکانیزم Pickle پایتون برای بازسازی اشیاء استفاده میکند، یک مهاجم میتواند با ایجاد یک فایل دستکاری شده (Crafted File)، کدهای مخرب خود را در قالب یک آرتیفکت گراف DGL جاسازی کند.
بردار حمله و پیشنیازها
برخلاف بسیاری از آسیبپذیریهای شبکه، DGL به طور پیشفرض هیچ Listener فعال در شبکه ندارد. بنابراین، حمله در قالب یک سناریوی Supply-Chain یا مهندسی اجتماعی رخ میدهد. برای موفقیت در این حمله، مهاجم باید:
- یک فایل سریالایز شده مخرب (مانند یک Dataset مشترک یا مدل گراف) را تولید کند.
- کاربر هدف را متقاعد کند تا این فایل را از طریق توابع کتابخانه بارگذاری (Load) نماید.
با توجه به اینکه این آسیبپذیری نیازمند تعامل کاربر (User Interaction) است، شدت آن در سطح Medium ارزیابی شده است، اما اثرات آن در صورت وقوع، دسترسی کامل به سیستم (Full Code Execution) خواهد بود.
وضعیت فعلاً
در حال حاضر اکسپلویت این آسیبپذیری به صورت عمومی منتشر شده است. گزارشهای اولیه حاکی از آن است که تیم توسعه DGL از این مشکل مطلع شدهاند اما هنوز بهروزرسانی رسمی یا Patch برای رفع کامل آن ارائه ندادهاند.