Mini Shai-Hulud: תולעת ב-npm פגעה ב-84 גרסאות של TanStack, והגיעה גם ל-Mistral
ב-11 במאי 2026 תוקף פרסם 84 גרסאות זדוניות של חבילות TanStack ב-npm. הנוזקה אספה מפתחות וסיסמאות בזמן ההתקנה, ובהמשך הגיעה גם לחבילות של Mistral AI.
TL;DR בקצרה
- ב-11 במאי 2026 פרסם תוקף 84 גרסאות זדוניות ב-42 חבילות @tanstack, בשש דקות בלבד.
- התוקף ניצל את צנרת השחרור הלגיטימית של TanStack, בלי לגנוב טוקן של npm, לפי TanStack.
- הנוזקה אספה אסימוני ענן, GitHub, npm, Kubernetes ומפתחות SSH, וניסתה להתפשט לחבילות אחרות.
- Mistral AI פרסמה ב-12 במאי אזהרה על גרסאות של חבילות npm ו-PyPI שלה, ואמרה שאין פגיעה בתשתית הגלובלית.
ב-11 במאי 2026 פרסם תוקף 84 גרסאות זדוניות ב-42 חבילות של TanStack ב-npm. התקיפה, ששמה Mini Shai-Hulud, הגיעה בהמשך גם לחבילות של Mistral AI. לפי TanStack, הנוזקה רצה בזמן ההתקנה ואספה סיסמאות ומפתחות.
Mini Shai-Hulud: איך התוקף פרץ לצנרת השחרור של TanStack
npm הוא מאגר החבילות הגדול של JavaScript, ומפתחים מתקינים ממנו רכיבים מוכנים. החבילה @tanstack/react-router לבדה מגיעה, לפי Infosecurity Magazine, למעל 12 מיליון הורדות בשבוע.
לפי הדוח של TanStack, התוקף יצר ב-10 במאי עותק של מאגר TanStack/router. למחרת פתח בקשת משיכה. תהליך אוטומטי בשם bundle-size.yml הריץ קוד מהעותק, כי הוגדר עם pull_request_target. בעולם האבטחה קוראים לדפוס כזה Pwn Request.
הקוד הזה שמר בזיכרון המטמון של GitHub Actions תיקיית חבילות מורעלת. בדחיפה הבאה לענף הראשי טען תהליך השחרור את המטמון הזה. הנוזקה שבו שלפה מזיכרון הריצה אסימון OIDC, ופרסמה חבילות ישירות ל-npm. TanStack מדגישה שתוקפים לא גנבו טוקנים של npm, ושהם לא פרצו לתהליך הפרסום עצמו.
יש כאן נקודה חשובה. לפי StepSecurity, כפי שמצטטת Infosecurity Magazine, לחבילות הזדוניות היה תיעוד מקור תקף ברמת SLSA 3, כי התוקף ניצל את הצנרת הלגיטימית. כלומר תיעוד מקור לא הבטיח שהחבילה בטוחה.
מה Mini Shai-Hulud עושה, ולמה קוראים לה תולעת
הנוזקה רצה בהתקנה, דרך תלות אופציונלית ותסריט prepare. לפי TanStack, היא אספה אסימוני ענן, Kubernetes ו-Vault, טוקנים של npm ו-GitHub ומפתחות SSH. היא העבירה אותם דרך רשת של אפליקציית הודעות עם הצפנה מקצה לקצה, כך שאין שרת של התוקף שאפשר לחסום.
היא גם ניסתה להתפשט לחבילות אחרות שהקורבן מתחזק. לכן התקיפה מכונה תולעת.
לפי Wiz, כפי שמדווחת Infosecurity Magazine, הפעילות קשורה בביטחון גבוה לקבוצה TeamPCP. Wiz מוסיפה שרכיב בשם gh-token-monitor בודק את GitHub כל 60 שניות. אם טוקן מבוטל, הוא עלול לנסות למחוק את תיקיית הבית של המשתמש. לכן כדאי לבודד את המחשב לפני ביטול הטוקנים.
מ-TanStack ל-Mistral ול-OpenAI: לאן הנוזקה הגיעה
Mistral AI פרסמה ב-12 במאי את הודעת האבטחה MAI-2026-002. לפי ההודעה, חבילות ה-npm שלה פורסמו ב-11 במאי והוסרו ב-12 במאי. הן @mistralai/mistralai בגרסאות 2.2.2 עד 2.2.4, ושתי חבילות נוספות, mistralai-azure ו-mistralai-gcp, בגרסאות 1.7.1 עד 1.7.3. הן אינן פעילות, כי תסריט ההתקנה מפנה לרכיב שלא קיים.
בחבילת PyPI בשם mistralai, בגרסה 2.4.6, הקוד הזדוני פעיל. הוא רץ בזמן הייבוא, רק ב-Linux. הוא מוריד סקריפט מכתובת 83.142.209.194 ומפעיל אותו ברקע. Mistral מדגישה שלא הייתה פגיעה בתשתית הגלובלית שלה, ושמכשיר פיתוח של עובד היה חלק מהאירוע.
לפי Infosecurity Magazine, הגל הגיע גם לחבילות של UiPath ושל OpenSearch, ולגרסה 0.10.1 של guardrails-ai. ב-13 במאי אמרה OpenAI שהנוזקה הגיעה לשני מכשירי עובדים אצלה, לפי דיווח של teiss. לדבריה, חומר הזדהות מוגבל יצא ממאגרי קוד, ואין עדות לגישה לנתוני משתמשים.
מה קרה מאז
ב-15 במאי עדכנה TanStack שהפריצה נגעה רק בחבילות של Router ו-Start. הגרסאות הנוכחיות של כל החבילות, לדבריה, בטוחות להתקנה. TanStack מציינת גם שגילתה את הפריצה מגורם חיצוני, ולא מניטור פנימי. חוקר מ-StepSecurity פתח הודעה במעקב כ-20 דקות אחרי הפרסום.
ב-19 במאי מסרה Grafana Labs שגם הפריצה אליה, שהתגלתה ב-16 במאי, התחילה בתקיפה הזאת. לפי הדוח שלה מ-23 ביוני, החברה פספסה טוקן אחד בהחלפת האישורים.
מה זה אומר עבורכם
- חפשו בכל מקום: בדקו קבצי נעילה, ארטיפקטים של בנייה, תמונות קונטיינר ומטמוני חבילות. Mistral מדגישה שגם עותק שמופיע בקובץ נעילה מהווה חשיפה.
- הניחו שהמחשב חשוף: לפי TanStack, כל מארח שהתקין גרסה מושפעת ב-11 במאי עלול להיות פרוץ. החליפו את הסיסמאות והמפתחות שנגישים ממנו, בהם ענן, Kubernetes, GitHub, npm ו-SSH.
- בודדו לפני ביטול: בגלל הרכיב שמתואר ב-Wiz, נתקו את המחשב מהרשת לפני שמבטלים טוקנים של GitHub.
- בדקו את יומני הענן: חפשו פעילות חשודה מהמחשבים שהתקינו את החבילות. בדקו גם תקשורת יוצאת אל הכתובת 83.142.209.194 ואל הדומיין git-tanstack.com.
- הקשיחו את ה-CI: בדקו תהליכים עם
pull_request_targetשמריצים קוד מעותקים חיצוניים, והצמידו פעולות של צד שלישי לגרסה מדויקת. אלה שני הליקויים ש-TanStack מנתה בדוח שלה.
מקורות והרחבה
- TanStack npm supply-chain compromise: postmortemTanStack
- MAI-2026-002: TanStack supply chain attack affecting Mistral SDK packagesMistral AI
- Mini Shai-Hulud Hits TanStack npm PackagesInfosecurity Magazine
- OpenAI says no user data breached after security issue with open source libraryteiss
- Post-incident review for TanStack npm supply chain ransom incidentGrafana Labs
הכתבה נכתבה במקור בעברית על ידי מערכת GEEKLIK, על בסיס המקורות שלמעלה ובדיקת העובדות מולם.
מצאתם טעות? דווחו לנו