نسخه آلوده LiteLLM روی PyPI و Docker منتشر شد
خلاصهٔ کاملتر
تیم LiteLLM (یه پروکسی محبوب که چند ارائهدهنده مدل زبانی رو پشت یه API واحد جمع میکنه) تو گزارشش میگه خط انتشارش هک شده و نسخه 1.107.0 با بدافزار منتشر شده. پکیج litellm==1.107.0 حدود دو ساعت، از 11:39 تا 13:23 به وقت UTC، روی PyPI بوده. ایمیجهای Docker با تگهای v1.107.0، latest، main-latest و main-stable هم از 11:46 تا 14:20 آلوده بودن. این بدافزار اطلاعات ورود رو میدزدیده و ابزار اجرای کد از راه دور بارگذاری میکرده.
اگه تو این بازه نسخه پیننشده نصب کردی یا یکی از این ایمیجها رو اجرا کردی، باید محیطت رو آلوده فرض کنی. نشونهها وجود فایلهای litellm-1.107.0.dist-info، cook.pth و sitecustomize.py توی site-packages هست. فایلهای .pth و sitecustomize.py با هر بار اجرای پایتون خودکار لود میشن. یعنی حتی اجرای pip install برای تعمیر هم دوباره بدافزار رو اجرا میکنه. نبودن این فایلها هم ثابت نمیکنه سیستم سالمه.
توصیه تیم اینه که اول از خود shell این فایلها و نسخههای کششدهشون رو پاک کنی، پروسه پسزمینهای که فایل /tmp/remote_code_loader.lock رو نگه داشته ببندی، و بعد نسخه 1.106.2 رو نصب کنی. ساختن دوباره ایمیج و venv از صفر بهتره. بعدش باید همه چیزهایی که اون هاست بهشون دسترسی داشته عوض بشه: نقش IAM، همه کلیدهای ارائهدهندهها که تو دیتابیس پروکسی ذخیره شدن، کلید master و کلیدهای مجازی، رمز DATABASE_URL و هر رازی که تو environment بوده. توی CloudTrail هم باید دنبال GetCallerIdentity و استفاده از اون نقش از بیرون زیرساختت بگردی.
جالب اینجاست که LiteLLM بعد از حادثه ماه مارس خط انتشارش رو کلی سفت کرده بود: ریپوی خصوصی برای انتشار، Trusted Publishers گیتهاب، تگهای تغییرناپذیر Docker و امضای ایمیجها. به گفته تیم، مهاجم مجبور شده چند لایه امنیتی مستقل رو با هم بشکنه. اون روز دوشنبه دسترسی انتشار موقتاً برای دو مهندس بازتر شده بود. مهاجم سه توکن GitHub CLI داشت که یکیش مال یکی از دو مالک سازمان بود. با همون، branch protection رو خاموش کرد و تغییری رو force push کرد که سازنده ریلیز رو به یه ریپوی جعلی با اسم شبیه (Berri-AI/litellm به جای BerriAI/litellm) وصل میکرد.
این توکنها از کجا اومدن؟ تیم میگه دیده که تو بعضی موقعیتها Claude Code توکن OAuth گیتهاب CLI کاربر رو داخل بدنه پاسخ میذاره و اگه بدنه پاسخها لاگ بشه، این توکنها تو لاگهای LiteLLM میمونن. یه نسخه داخلی LiteLLM که رو اینترنت باز بود یه حساب کاربری مشکوک داشت. تیم فکر میکنه مهاجم از همین راه وارد شده، احتمالاً با یه آسیبپذیری که تازه پچ شده بود، و توکنها رو از لاگ برداشته. مهاجم بعدش با حساب سوم رکوردهای workflow رو هم پاک کرد تا لاگ کمتری بمونه. تحقیقات هنوز ادامه داره.
نکات کلیدی:
- نسخه آلوده: litellm==1.107.0 روی PyPI، Docker Hub و GHCR
- بازه خطر: PyPI از 11:39 تا 13:23 و Docker از 11:46 تا 14:20 به وقت UTC روز ۲۱ اکتبر ۲۰۲۶
- نسخه امن پیشنهادی: 1.106.2؛ نسخه سازمانی خصوصی آسیب ندیده
- نشونه آلودگی: فایلهای cook.pth و sitecustomize.py در site-packages
- راه نفوذ: توکنهای GitHub CLI که از لاگ یه نسخه داخلی در دسترس اینترنت برداشته شدن
- ریپوی جعلی مهاجم: Berri-AI/litellm




