הותקפה שרשרת ההפצה של LiteLLM. מי צריך להחליף מפתחות?
כתבות5 דקות קריאהLiteLLMאבטחת מידעשרשרת אספקת תוכנהמפתחות APIPyPIDocker
הגרסה הזדונית הוסרה בתוך שעות, אבל מפתחות שנקראו בסביבה שנפגעה נשארים בסיכון גם אחרי שדרוג.
עיקרי הדברים
גרסה 1.107.0 של LiteLLM הופצה ב-21 באוקטובר 2026 דרך PyPI ותמונות Docker נגועות.
ניתוח Wiz מצא רכיב שגונב פרטי גישה ומנגנון שמסוגל לטעון קוד מרחוק; הפעלת Python בסביבה נגועה עלולה להפעיל אותם.
LiteLLM הסירה את הגרסה מ-PyPI בתוך כשעתיים ואת תגיות Docker הנגועות בתוך פחות משלוש שעות.
היקף הפגיעה בפועל עדיין אינו ידוע; הורדות של החבילה אינן מספר המכונות שהריצו אותה.
מי שהפעיל גרסה נגועה צריך לבנות מחדש את הסביבה ולהחליף את המפתחות שהיו נגישים לה, גם אם כבר שדרג גרסה.
מפתחות הגישה למודלים ולענן יושבים לעיתים באותו שרת או תהליך שמנתב את בקשות ה-AI של הארגון. מה קורה כשהתוכנה שמחזיקה אותם מגיעה ממקור נגוע? במקרה של LiteLLM, השאלה אינה תאורטית: ב-21 באוקטובר הופצה גרסה זדונית של שער הגישה הפופולרי למודלים.
חלון ההפצה היה קצר, אבל תוצר נגוע שנמשך במהלכו או נשמר במטמון עלול לפגוע גם אם הופעל מאוחר יותר. הסרת הגרסה מהמאגר היא רק תחילת הבדיקה.
חלון חשיפה קצר יכול להשאיר מפתחות תקפים בידי התוקף
לפי דיווח האירוע של LiteLLM, שבע חבילות ההתקנה של גרסה 1.107.0 ב-PyPI היו נגועות בין 11:39 ל-13:23 UTC ב-21 באוקטובר. תמונות Docker שסומנו v1.107.0, latest, main-latest ו-main-stable הצביעו על גרסה נגועה בין 11:46 ל-14:20 UTC ב-Docker Hub; ב-GHCR הן הוסרו מוקדם יותר. החברה אומרת שהגרסאות הקודמות בטוחות ושהגרסה האחרונה המומלצת כעת היא 1.106.2. לדבריה, לקוחות Enterprise שהשתמשו במאגר הפרטי שלה לא הושפעו.
, לפרויקט כ-23 מיליון הורדות בשבוע, נתון שמסביר את פוטנציאל החשיפה אך אינו מונה ארגונים שנפגעו. גם הורדה של הגרסה הזדונית אינה מוכיחה שהתוכנה הופעלה, והיעדר התקנה פעילה היום אינו שולל הרצה קודמת. לכן הבדיקה צריכה לכלול התקנות בשרתים, מחשבי פיתוח וסביבות בנייה, וכן תמונות Docker שנמשכו באותו חלון או נשמרו במטמון. חלון ההפצה עוזר לאתר תוצרים נגועים, אך הרצה שלהם גם לאחר סיומו עדיין מסכנת את הסביבה.
הנזק האפשרי חורג ממפתחות ה-AI שבשער הגישה
לפי הניתוח הטכני של Wiz, החבילה הוסיפה קבצים שמופעלים עם עליית מפרש Python. רכיב אחד נועד לאסוף סיסמאות ועוגיות מדפדפנים, מפתחות לענן, פרטי גישה לכלי פיתוח ומפתחות API לספקי מודלים. בשרת LiteLLM Proxy הוא ניסה לקרוא גם מפתחות ספקים ממסד הנתונים של השירות. המידע נשלח לדומיין litellm.dev, שהתחזה לתשתית הפרויקט ואינו הדומיין הרשמי litellm.ai.
רכיב נוסף נועד להוריד ולהריץ קוד מרחוק. Wiz מצאה את היכולת הזו בחבילה, אך כתבה שבזמן הניתוח שלה לא נצפתה הפעלה של השלב המרוחק. ההבחנה חשובה: גניבת פרטי הגישה היא הסיכון המיידי שהקוד תוכנן לבצע; עצם קיומו של מנגנון ההרצה מרחוק אינו הוכחה שהופעל בכל סביבה.
לפי LiteLLM, התוקף השתמש בהרשאות GitHub של שלושה מהנדסים כדי לשנות את תהליך השחרור ולבנות את החבילות ממאגר מתחזה. החברה מעריכה שטוקני GitHub CLI דלפו ללוגים של פריסת LiteLLM פנימית; היא עדיין לא אישרה כיצד התוקף נכנס לפריסה הזאת. זהו ממצא ראשוני של החברה, ולא סיבה להניח שכל התקנת LiteLLM חשפה טוקנים באותה דרך.
זהו אירוע שרשרת ההפצה השני שעליו דיווחה LiteLLM השנה. אחרי האירוע במרץ החברה הקשיחה את תהליך השחרור; הפעם, לדבריה, התוקף ניצל הרשאות של מהנדסים ושינה את מקור הבנייה למרות מנגנוני ההגנה. המשמעות לארגונים היא שגם חבילה שנראית כאילו פורסמה בערוץ הרשמי דורשת בדיקת גרסה ותוצר התקנה, ולא הסתמכות על שם המאגר בלבד.
הבדיקה מתחילה במה שרץ, וממשיכה במה שהיה נגיש לו
אם הותקנה אצלכם החבילה הנגועה של litellm==1.107.0, או אם נמשכה או הורצה אצלכם תמונת Docker בעלת digest נגוע, התייחסו לסביבה שהריצה Python או את הקונטיינר כחשודה, גם אם ההרצה התרחשה אחרי שחלון ההפצה הסתיים. LiteLLM ממליצה לבדוק גרסה וראיות כגון litellm-1.107.0.dist-info, cook.pth ו-sitecustomize.py. היעדר הקבצים כיום אינו מוכיח שהסביבה הייתה נקייה בזמן האירוע; מחיקת קבצים זמניים או בנייה מחדש של קונטיינר יכולה להעלים ראיות.
עצרו שימוש בסביבה שנפגעה ושמרו לוגים ומידע הדרושים לתחקור. אל תריצו בה pip install כצעד ראשון: לפי LiteLLM, הפעלת Python עלולה להריץ שוב את הקוד הזדוני. נקו או בנו מחדש את סביבת העבודה ממקור בטוח, וצרו מפתחות חלופיים מסביבה נקייה. החליפו את הסודות שהמכונה או הקונטיינר יכלו לקרוא, בהם מפתחות לספקי AI, הרשאות ענן, טוקנים של GitHub, פרטי גישה למסד הנתונים ומפתחות שמורים ב-LiteLLM Proxy. בדקו ביומני הענן וביומני השירות שימוש חריג לאחר ההתקנה או הרצת התמונה. Wiz דיווחה שכבר צפתה בניסיונות שימוש בהרשאות AWS שנגנבו מסביבות שנפגעו.
השורה התחתונה: שדרוג התוכנה אינו מחזיר מפתח שנחשף
האירוע ב-LiteLLM ממחיש סיכון מרוכז: שער אחד למודלים יכול להחזיק גישה לכמה ספקי AI ולתשתיות שמפעילות אותם. בתוך שעות הופצה גרסה שיכלה לקרוא את פרטי הגישה האלה, והסרתה מהמאגר אינה מבטלת מפתחות שכבר הועתקו.
מה כדאי לעשות: לזהות לפי גרסאות, זמני התקנה ותגיות או digest של תמונות מי הפעיל את הגרסה הנגועה; לבנות מחדש סביבות שנפגעו; ולהחליף מתוך סביבה נקייה את כל פרטי הגישה שהיו זמינים להן. מי שלא מצא חשיפה יכול להמשיך לעקוב אחר עדכוני התחקיר של LiteLLM, משום שהיקף הפגיעה ונתיב הכניסה הראשוני עדיין נחקרים.
איך טקסט עברי הופך לטוקנים, מתי הספירה משפיעה על המחיר ואיך בודקים עלות ואיכות לפני שבוחרים מודל.