یک آسیبپذیری امنیتی در کتابخانه gensim (نسخههای تا 4.4.0 و شاخه develop) شناسایی شده است که امکان اجرای کد از راه دور (Remote Code Execution یا RCE) را فراهم میکند. این نقص امنیتی در تابع Load در فایل gensim/utils.py و در بخش Model Loader قرار دارد.
جزئیات فنی آسیبپذیری
این مشکل از نوع CWE-502 (Deserialization of Untrusted Data) است. در این حالت، کتابخانه Gensim از متد pickle.load برای بازخوانی مدلها استفاده میکند. از آنجایی که ماژول pickle در پایتون به طور ذاتی ناامن است، یک مهاجم میتواند با طراحی یک فایل مدل یا بردار (Vector File) مخرب، دستورات دلخواه خود را در سیستم هدف اجرا کند.
سناریوی حمله و پیشنیازها
- بردار حمله (Attack Vector): حمله به صورت Network (AV:N) قابل اجرا است.
- تعامل کاربر (User Interaction): برای موفقیت حمله، قربانی باید فایل مخرب ارسال شده توسط مهاجم را بارگذاری (Load) کند (UI:R).
- سطح دسترسی (Privileges): مهاجم برای ایجاد و ارسال فایل مخرب نیازی به داشتن دسترسی یا احراز هویت در سیستم هدف ندارد (PR:N).
وضعیت فعلاً اصلاح نشده
گزارشها حاکی از آن است که با وجود شناسایی این نقص، هنوز اصلاحیه رسمی یا Patch برای نسخههای فعلی منتشر نشده است و کدهای موجود در شاخه توسعه (develop HEAD) همچنان از متدهای ناامن برای بارگذاری مدلها استفاده میکنند. با توجه به انتشار اکسپلویت (Exploit) در فضای عمومی، ریسک بهرهبرداری از این آسیبپذیری افزایش یافته است.