קמפיין התקיפה האחרון בשרשרת האספקה לא הסתפק בפגיעה במאגרי קוד פתוח. הוא השתלט על תהליך שחרור הגרסאות באחד הארגונים הקפדניים ביותר בעולם בכל הנוגע לאבטחה, ונקודת הפריצה הייתה התקנה שגרתית של תלות npm.
ב-11 במאי 2026, קבוצת התקיפה TeamPCP ביצעה את הגל הרביעי של קמפיין תולעת ה-Shai-Hulud שלה, המכונה כעת Mini Shai-Hulud. התקיפה פגעה ב-84 גרסאות של חבילות זדוניות ב-42 חבילות TanStack במאגר npm תוך פרק זמן של שש דקות, והתרחבה בסופו של דבר ליותר מ-170 חבילות במאגרי קוד המקור npm ו-PyPI (Python Package Index), כולל מרחבי שמות השייכים ל-Mistral AI, UiPath ו-OpenSearch. לפחות חבילה אחת שנפגעה, @tanstack/react-router, זוכה לכ-12 מיליון הורדות שבועיות.
זוהי הגל הרביעי בקמפיין שהולך ומחריף. הגלים הקודמים כללו את הפריצה הראשונית ל-npm (Shai-Hulud 1.0) ואת הגל השני (2.0) שכוון לאמצעי הזדהות ב-GitHub.
OpenAI חשפה השבוע כי שני מכשירים של עובדים נפרצו. לא נפגעו נתוני משתמשים, מערכות ייצור או קניין רוחני, אך פעולות הבלימה כללו בידוד מערכות, החלפת פרטי הזדהות, פנייה למומחים חיצוניים בתחום הפורנזיקה, וכן החלפה מלאה של תעודות חתימת קוד במערכות ההפעלה macOS, Windows, iOS ו-Android, אשר נגרמה על ידי התקנה של תלות אחת.
מיני שיי-הולוד, גל 4: עובדות בקצרה
- תאריך ההתקפה: 11 במאי 2026
- חבילות שנפגעו: 84 גרסאות זדוניות ב-42 חבילות @tanstack/*; יותר מ-170 בסך הכל במאגרי npm ו-PyPI
- CVE: CVE-2026-45321, ציון CVSS 9.6 (קריטי)
- מקור: TeamPCP (מוכר גם בשמות PCPcat ו-UNC6780)
- מנגנון: שלוש פגיעויות ב-GitHub Actions הקשורות זו בזו – Pwn Request, זיהום מטמון, וחילוץ אסימון OIDC (OpenID Connect) מזיכרון תהליך ה-runner
- קורבן בולט: OpenAI – שני מכשירים של עובדים נפרצו; סודות שנחשפו, בהם תעודות חתימת קוד עבור macOS, iOS, Windows ו-Android, הוצאו ממאגרי קוד המקור הפנימיים
- גרסאות קודמות: Shai-Hulud 1.0 (ספטמבר 2025), 2.0 (נובמבר 2025) ו-3.0 (דצמבר 2025)
- ההשפעה: פגיעה בסביבות פיתוח ו-CI/CD, השתלטות על חשבונות של אחראי תחזוקה וחבילות, וכן העובדה שמקור ה-SLSA והבניות החתומות אינם עוד "בטוחים כברירת מחדל"
- סיכונים עיקריים: חבילות זדוניות שעוברות את אימות המקור של SLSA (Supply-chain Levels for Software ) ברמת ה-Build 3
כיצד התבצע הפיגוע
"מיני שיי-הולוד גל 4" הוא הגרסה המתוחכמת ביותר מבחינה טכנית של קמפיין זה עד כה. בעוד שהגלים הקודמים הסתמכו על חשבונות מנהלי מערכת שנפרצו כדי לפרסם חבילות זדוניות באופן ישיר, "גל 4" שילב בין שלוש פגיעויות ב-GitHub Actions כדי להשתלט על צינור השחרור הלגיטימי עצמו.
שלבי ההתקפה:
- פיצול והסוואה: התוקף ביצע פיצול של מאגר ה-TanStack/router ושינה את שמו ל-zblgg/configuration, כדי שלא יופיע כפיצול ברור בתצוגות רשימת הפיצולים ב-GitHub.
- הפעלת זרימת העבודה: נפתחה בקשת משיכה שהפעילה את זרימת העבודה pull_request_target — התבנית "Pwn Request" המעניקה לזרימת העבודה גישה לקוד שהועתק
- "הרעלת" המטמון: קוד ה-fork של התוקף הוסיף למטמון של GitHub Actions ערך pnpm-store מזוהם בגודל 1.1 GB, שנקבע כך שתהליך העבודה של המהדורה ישחזר אותו בהמשך
- למחוק את העקבות: בקשת המשיכה הזדונית הועברה בכפייה למצב של "ללא פעולה" ונסגרה, כדי לטשטש את העדויות לפריצה
- המתן להפעלת התהליך: כאשר מנהלי TanStack המוסמכים מיזגו בקשות משיכה (pull requests) שאינן קשורות לענף הראשי (main), תהליך שחרור הגרסה הופעל ושחזר את המטמון שנפגע
- Steal the token: Attacker-controlled binaries read /proc/<pid>/mem of the Runner.Worker process to extract the OIDC token minted for npm trusted publishing
- פרסום באמצעות צינור העבודה: האסימונים הללו שימשו לפרסום 84 גרסאות חבילות זדוניות במאגר npm באמצעות צינור העבודה הלגיטימי של TanStack עצמה.
- התוצאה: חבילות הנושאות אישורי מקור תקפים ברמת בנייה 3 של SLSA, אישורי Sigstore תקפים וחתימות GitHub Actions חוקיות, שהופקו על ידי צינור השחרור הלגיטימי, אך מכילות תוכנות זדוניות לגניבת אישורים. כפי שאישר TanStack בניתוח שלאחר האירוע, מנקודת מבטו של המפתח החבילות נראו אותנטיות מבחינה קריפטוגרפית, ללא כל סימן גלוי לפריצה.
סודות נחשפו: מטען התוכנה הזדונית הוציא מידע סודי שנחשף – פרטי הזדהות ואסימונים שהיו נגישים באופן פעיל במערכות שנפרצו – באמצעות שלושה ערוצים מקבילים: דומיין מסוג "טיפוסקוואט" (git-tanstack[.]com), רשת המסרים המבוזרת Session, ונקודות API ב-GitHub API באמצעות אסימונים גנובים. פרטי הזיהוי שנחשפו כללו אסימוני GitHub, סודות ענן מ-AWS, GCP ו-Azure, חומר אימות CI/CD, פרטי זיהוי Kubernetes, Vault HashiCorp Vault ומפתחות SSH.
במחשבי המפתחים, התוכנה הזדונית התקינה דמון קבוע בשם gh-token-monitor (באמצעות LaunchAgent ב-macOS או systemd ב-Linux), שסרק את GitHub כל 60 שניות. עם קבלת שגיאה 40X עקב ביטול האסימון, הדמון ניסה להריץ את הפקודה rm -rf ~/ כדי למחוק את ספריית הבית של המשתמש. הדמון נסגר אוטומטית לאחר 24 שעות.
ההשפעה של OpenAI ומה היא מלמדת אותנו
בגילוי הנאות של OpenAI מפורטים במדויק הפרטים שהודלפו: חומר מוגבל הנוגע לאישורים מתוך תת-קבוצה של מאגרי קוד מקור פנימיים שהיו נגישים לשני העובדים שנפרצו, כולל תעודות חתימת קוד עבור מוצרי macOS, iOS, Windows ו-Android. OpenAI אישרה כי אין ראיות לכך שתעודות אלה שימשו לחתימת תוכנה זדונית, אך היא מחליפה את כולן כצעד זהירות ומחייבת את משתמשי macOS לעדכן את היישומים שלהם לפני 12 ביוני 2026, ולאחר מכן יישומים שנחתמו עם התעודות הישנות עלולים להפסיק לפעול.
ישנו פרט נוסף בגילוי של OpenAI שראוי לתשומת לב. שני המכשירים שנפרצו טרם קיבלו את התצורות המעודכנות לניהול חבילות, הכוללות בקרות כגון בדיקת גיל מינימום של גרסאות ואימות מקור החבילות, שהוטמעו בסביבת הארגון. ההתקפה התרחשה במהלך תקופת ההטמעה הזו.
זה מתאר פער אמיתי ונפוץ. אמצעי אבטחה מוטמעים בהדרגה. במהלך כל פריסה בשלבים, חלק מהמערכות חשוף יותר. הקמפיין של TeamPCP התנהל ברציפות לאורך שבועות, תוך פרסום חבילות זדוניות ברישומים והמתנה להתקנתן. העיתוי לא היה מקרי.
בדקו Software שלכם כדי למנוע Supply Chain
פתרון MetaDefender Software Chain™ נועד לסייע לארגונים לבדוק אובייקטים, חבילות וקבצים בינאריים הנכנסים למחזור חייSoftware (SDLC), לרבות חבילות הנושאות חתימות תקפות או אישורי מקור, ובכך לספק נראות של התוכנה לאורך כל תהליך הפיתוח, בנקודה שבה נעשה שימוש בחבילות.
שלוש יכולותSupply Chain MetaDefender Software Supply Chain מטפלות באופן ישיר בפערים שניצלה מתקפה זו:
Metascan™ Multiscanning: משלבת יותר מ-30 מנועי אנטי-תוכנות זדוניות מסחריים כדי לסרוק חבילות ממאגרי קוד מקור, כולל npm ו-PyPI, לפני שהן מגיעות לתחנות העבודה של המפתחים או לצינורות ה-CI/CD. בעוד שמנוע זיהוי בודד עלול שלא לזהות גרסה חדשה שפורסמה, שטח הזיהוי המשולב מצמצם את פרק הזמן שבמהלכו חבילה זדונית יכולה לפעול מבלי להתגלות.
יצירת SBOM (Software רכיביSoftware ) : מספקת נראות של רכיבי התוכנה בכל מערך המערכת, תלות ישירות ועקיפות, היסטוריית גרסאות ומטא-נתוני הרישום, עם תמיכה ביותר מעשר שפות תכנות. ה-SBOM מסייע בחשיפת שינויים בלתי צפויים בחבילות התוכנה בטרם הם מתפשטים במורד הזרם, ומאפשר ייצוא בפורמטים CycloneDX ו-SPDX כדי לתמוך בעמידה בדרישות הרגולטוריות, לרבות חוק DORA (Digital Operational Resilience Act).
Proactive DLP™: סורק את קוד המקור בחיפוש אחר סודות המוטמעים בקוד – סיסמאות, API , אסימונים ופרטי הזדהות המוטמעים בקוד – לפני שהם נחשפים לתוקפים. הדבר שונה מתגובה לדליפת פרטי הזדהות: טכנולוגיית Proactive DLP™ מטפלת בסיכון שסודות שהושארו בתוך קוד המקור או קבצי התצורה יהפכו לנגישים כאשר מאגר נתונים נפגע, כפי שקרה באירוע OpenAI.
MetaDefender Software Supply Chain משתלבת באופן מובנה עם GitHub, GitLab, Azure DevOps ו-Nexus, ומציבה את הבדיקה בתוך הצינור ולא לצדו. גרסה 3.3.0, שפורסמה לאחרונה, מוסיפה תמיכה בהעברת ארטפקטים מאובטחת בין סביבות מבודדות באמצעות העברת נתונים חד-כיוונית בטכנולוגיית דיודה, ומאפשרת לארגונים בסביבות מנותקות או בעלות אבטחה גבוהה לאמת ארטפקטים לפני שהם חוצים גבולות רשת, עם תהליך הפעלה זמין שמתאים לתהליכי העבודה הקיימים של DevSecOps.

פעולות מיידיות מומלצות
לכל ארגון שיתכן שהתקין את החבילות המושפעות במהלך פרק הזמן של "מיני שיי-הולוד":
- יש לוודא שהדמון gh-token-monitor פועל לפני ביטול האסימונים: יש לבודד ולצלם תחילה את המערכות המושפעות; ביטול מוקדם מדי יפעיל את מנגנון המחיקה.
- יש להחליף סיסמאות חשופות: סיסמאות GitHub PAT, אסימוני npm, מפתחות SSH ופרטי הזדהות לענן עבור כל מפתח או צינור עבודה שהתקין חבילות במהלך פרק הזמן הנגוע; יש להפעיל אימות דו-שלבי (MFA).
- הסר חבילות שנפגעו: נקה את מטמון npm ואת תיקיית node_modules; קבע את הגרסאות של החבילות לזו שפורסמה לאחר ה-12 במאי 2026.
- בדקו את פעולות GitHub ואת תהליכי העבודה של CI/CD: חפשו אירועי פרסום בלתי צפויים, תהליכי עבודה חדשים או חיבורים יוצאים לנקודות קצה לא מוכרות.
- הקשחת צינורות : הגבלת סקריפטים של מחזור חיים, הגבלת גישה יוצאת לרשת וצמצום היקף האסימון.
- יש לשלב בדיקות מקור עם בדיקת תוכן: מקור תקין מצביע על מקור הצינור, אך לא על תקינותו; יש להשתמש בסריקת תוכנות זדוניות לצד אימות האישורים.
נקודות מפתח
אישור מקור מצביע על מקור התוכן, אך לא על תקינותו
Wave Four יצרה חבילות זדוניות שעברו אימות תקין, מכיוון שתהליך הפצת הגרסאות עצמו נפרץ. בדיקות חתימה ומקור מהוות אינדיקציה מועילה, אך אינן מהוות ערובה לתוכן בטוח.
"חלון הפריסה" הוא "חלון חשיפה"
האירוע ב-OpenAI התרחש במהלך הטמעה הדרגתית של בקרות חדשות בשרשרת האספקה. בכל ארגון קיימים פערים דומים במהלך הטמעת הבקרות. בדיקה ברמת התוכן בכל שלב מסייעת להפחית את התלות בכך שהכיסוי של המדיניות יהיה מלא עוד לפני התרחשות מתקפה.
קמפיין זה נמשך
"מיני שיי-הולוד" הוא הגל הרביעי בקמפיין שהלך והחריף באופן שיטתי מבחינת התחכום הטכני מאז ספטמבר 2025. התייחסות לכל אירוע בודד כאל אירוע שטופל, מבלי לטפל בפגיעויות הבסיסיות בתשתית, מותירה את הארגונים חשופים לגל הבא.
שילוב בין נראות ה-SBOM, סריקה רב-שלבית לאיתור תוכנות זדוניות וזיהוי סודות המוטמעים בקוד מסייע לצמצם את שטח החשיפה בסביבות פיתוח תוכנה מודרניות. אל תסמכו על אף קובץ. אל תסמכו על אף מכשיר.
מוכנים להגן על תהליך פיתוח התוכנה שלכם מפני מתקפות על שרשרת האספקה כמו "מיני שיי-הולוד"?
