איור טכני מופשט על רקע כחול־נייבי עמוק: צללית של מפתח בענבר זוהר תלויה משמאל על חוט אנכי יחיד, וחוט אופקי דק נמשך ממנה ימינה אל קיר נסוג של לוחות זכוכית מט גבוהים. שלושה מהלוחות זוהרים בענבר חמים מאחור, והשאר נשארים בכחול פלדה. קשת דקה בצבע ציאן עם סימוני שנתות קטנים מטפסת מהפינה השמאלית התחתונה לרוחב הקיר. לא מופיעים אנשים, לוגואים או טקסט קריא. הלוגו של OrcaRouter נמצא ברצועה לבנה בפינה הימנית התחתונה.
AI Safety Incidents

CrowdSec איבדה 170 מאגרי קוד פרטיים בתשע דקות בגלל פער בתהליך עזיבת עובדים

מחבר

Elias Hawthorne

תאריך פרסום

מודלים אחרונים · 20צפו בכל המודלים →
בנצ'מרקים: Artificial Analysis · מתעדכן יומית
חזרה לכל הפוסטים

ב-22 במאי 2026, בין 05:52:29 ל-06:01:33 UTC, מישהו שפעל מכתובת IP בטורונטו, קנדה, השתמש בחשבון ה-GitHub של מפתח שזה עתה עזב את CrowdSec כדי להעתיק כ-170 מהמאגרים הפרטיים של חברת האבטחה הצרפתית. CrowdSec פרסמה את לוח הזמנים הזה בדוח התקרית שלה ב-18 בספטמבר 2026 — התאריך שארכיון תקריות ה-AI מייחס לרשומה הזו — לאחר שארכיון של קוד המקור שלה הופיע בשוק הפשע הקיברנטי pwnforum ב-16 בספטמבר. החשבון עדיין עבד משום שהחברה השאירה במכוון את גישתו של המפתח ל-GitHub פתוחה כדי שיוכל לסיים עבודה כלשהי. המחשב הנייד שמאחורי החשבון נדבק אחד-עשר יום קודם לכן בתולעת גניבת האישורים Mini Shai-Hulud ש-TeamPCP דחפה דרך חבילות ה-npm של TanStack. תיאור זה מבוסס על הרשומה שהוגשה ב-18 בספטמבר 2026, ומערך התקריות המתועד במלואו — כאשר כל פריט נושא את חומרת התקרית שלו, דרגת הביטחון, דגל המחלוקת והמקורות שלו — נמצא בארכיון תקריות ה-AI של Orca, שם אפשר לקרוא את המקרה הזה לצד מקרי שרשרת האספקה האחרים מאותה שנה.

הגניבה לא נותרה מוגבלת לקוד. הדוח של CrowdSec חשף גם את כתובות האימייל של 83 משתמשים, שנלקחו מרשימת ניטור פנימית של מדעי הנתונים ורובן חשבונות Gmail, וכן את שמות הפרט והמשפחה, כתובות האימייל והקשר ההשקעה של 51 משקיעים פוטנציאליים משנת 2020. בהשוואה לכ-150,000 משתמשים, 83 כתובות הן שבריר קטן; זה לא אפס. המנהל הראשי פיליפ הומאו שמר את התנצלותו האישית למשקיעים: "הדלפת השמות וכתובות האימייל שלכם היא עניין שנדון בו ישירות אתכם ועם הרשויות המוסמכות, ועל כך אני מתנצל אישית."

מה שבאמת לקח תשע דקות

Dark navy HTML timeline card with a faint grid, kicked 'crowdsec · 22 may to 18 september 2026 · times as published' and headed 'The nine minutes, and the 117 days after'. Two columns of timestamped rows. Left, headed 'Upstream, then the copy': 11 May, 84 malicious versions across 42 TanStack npm packages ship the Mini Shai-Hulud credential harvester; 22 May 05:52:29, the copy window opens with a first fetch logged at 05:52:32.138 UTC; 22 May 06:01:33, the window closes with about 170 private repositories copied from an IP in Toronto, machine timezone UTC-4; 25 May, the former developer's account is removed from the GitHub organisation, three days after the copy. Right, headed 'Before disclosure, then discovery': 17 August, the exposed AWS SNS token is probed from 23.234.84.102 and reaches no further than a single topic; 16 September 17:45, an archive of CrowdSec source code is published on the pwnforum marketplace; 16 September 20:00, the Fuites Info team contacts CrowdSec and a crisis cell is stood up; 17 September, token rotation begins and GitHub support traces the token's lifecycle; 18 September, the full report discloses 83 user email addresses and the details of 51 potential investors from 2020. A highlighted band reads 'The account was left open on purpose so a departing developer could finish some work. It was revoked on 25 May, after the repositories were already gone.' A footer cites CrowdSec's analysis of 18 September 2026. The OrcaRouter logo sits in a white strip at the bottom right.

רשומות ה-Git ש-GitHub החזיר ל-CrowdSec מתחילות ב-05:52:32.138 UTC עם fetch כנגד אחד מהמאגרים של החברה, והפעילות מסתיימת ב-06:01:33. הנתון בארכיון של כ-170 מאגרים פרטיים מגיע מנתוני ה-Git האלה. בכתיבתו, Humeau מתאר את החשיפה כ"מוגבלת לקוד המקור של CrowdSecurity, כולל 130+ מאגרים ציבוריים והרבה מאגרים פרטיים." DevOps.com, שדיווח על התקרית ב-24 בספטמבר, הציב את הספירה המשולבת של מאגרים ציבוריים ופרטיים על כ-300 מאגרים — מספר גדול יותר מנתון המאגרים הפרטיים של CrowdSec עצמה, ומספר שהדוח של החברה אינו מציין.

התוכן היה הריהוט הרגיל של חברת SaaS מהירת תנועה: קוד המקור של קונסולת האינטרנט, סקריפטים לפריסה ולאוטומציה, וסקריפטי מדעי הנתונים והמודלים שמאחורי האנליטיקה שלה. הפריט הרגיש ביותר ש-CrowdSec מציינת הוא "אלגוריתם הקונצנזוס" שקובע אילו כתובות IP מגיעות לרשימות החסימה שלה. הארכיטקטורה של האלגוריתם כבר הייתה פומבית, אך ספי הגיוון והזיהוי שלו לא היו, וכעת הם ידועים. הומאו טוען שהספים הם מטרה נעה ושעדיין יידרש צי שרתים גדול ויקר כדי להטות את הקונצנזוס; החברה אומרת שהיא יכולה להתאים אותם והיא עוקבת אחרי אי-התאמות.

פרטי הגישה היו החלק שיכול היה להיגמר הרבה יותר גרוע. "היינו קרובים מאוד למצב נקי", כתב הומאו. הסוד השמיש היחיד בדאמפ היה טוקן של AWS Simple Notification Service, עם הרשאה לפרסום בנושא אחד בלבד. מישהו בדק אותו בתאריך 17 באוגוסט 2026 מכתובת IP 23.234.84.102, קרא ל-GetCallerIdentity ול-ListTopics כנגד נושאי ה-dev וה-env, ולא הגיע רחוק יותר. רוב הטוקנים והסודות האחרים בקוד בוטלו או הוחלפו לפני ההדלפה. CrowdSec מסרה כי לא התקבלה גישה לתשתיות ולמסדי הנתונים שלה, וכי לא שונה קוד בפרויקט הקוד הפתוח, במקור הפרטי שלה או בצינורות הבנייה שלה.

Dark navy HTML card headed 'What left the building', kicked 'the exposure, as crowdsec counted it'. Five tiles across the top. 170, private repositories copied in the nine-minute window per the Git activity GitHub returned, noted 22 May 2026 05:52 to 06:01 UTC. 130+, public repositories the CEO says were also in the leak alongside many private ones, with a note that DevOps.com puts the combined figure at about 300. 83, user email addresses mostly Gmail drawn from a data-science monitoring list, out of roughly 150,000 users. 51, potential investors from 2020 with names, addresses and investment context, described as the group the CEO apologised to personally. 1, usable credential in the dump, an AWS SNS token scoped to one topic, probed 17 August from 23.234.84.102. Four smaller tiles below read: console source, the SaaS web console not open-sourced and not intended to be; data-science scripts and models, of little use without the data that trains them; automation scripts, deployment, QA and Slack bots that the company calls no-risk; consensus thresholds, the diversity and detection limits that were not public before. A highlighted band reads 'No infrastructure, no databases, no code changes, CrowdSec's finding. The data-science scripts and models and the blocklist consensus thresholds went with the source.' A footer cites CrowdSec on 18 September 2026, Dark Reading on 22 September and DevOps.com on 24 September. The OrcaRouter logo sits in a white strip at the bottom right.

למה החשבון עדיין עבד

כשל תהליך העזיבה הוא קטן וספציפי. עד שהמפתח עזב, CrowdSec כבר הסירה את הגישות האחרות שלו; חשבון ה-GitHub נשאר פעיל, כתב Humeau, מכיוון ש"נפרדנו ביחסים טובים מהמפתח שלנו, והוא רצה לסיים עבודה כלשהי". החשבון הוסר מארגון ה-GitHub ב-25 במאי, שלושה ימים לאחר שהמאגרים כבר הועתקו.

CrowdSec לא יכלה לראות את הגניבה באותו זמן, וכדאי לנסח את הסיבה במדויק. אסימון ה-OAuth לא היה נוכח ביומן הביקורת של הארגון או ביומן הביקורת של אף חבר נוכחי, ובזמן שמישהו יצא לחפש אותו הוא כבר לא היה קיים: הוא נוצר, שומש ופג תוקפו מבלי להשאיר עקבות שהחברה יכלה לקרוא. GitHub שומרת פעילות Git רק בחלון מתגלגל של שבעה ימים עבור ארגונים שאינם בתוכנית Enterprise, כפי ש-CrowdSec עצמה מציינת. פריצת הדרך הגיעה מצוות התמיכה של GitHub, שאיתר את מחזור החיים המלא של האסימון וסיפק את פעילות ה-Git בחלון של שעתיים סביב מועד ההעתקה. כך הגיעה החברה לחשבון של עובד שעזב. הקשר חזרה ל-TanStack הגיע מאותה בדיקה.

הארכיון שהודלף נשא עמו את הראיות שלו. קובץ ה.github/.git/config שבתוכו תיעד כתובת מקור מהצורה oauth2:gho_xxxxxxxxx@github.com, וזיהה את פרטי הכניסה כאסימון OAuth של GitHub, בהתאמה למתודולוגיה המתועדת של TeamPCP. CrowdSec אומרת שהיא בדקה מכונות מפתחים לאיתור חבילות זדוניות ולא מצאה אף אחת מגרסאות TanStack עם דלת אחורית במאגרים שלה — תוצאה שהיא מתארת כבלתי מכרעת ולא כמזכה.

מי עשה את זה, ועד כמה הייחוס מוצק

CrowdSec מייחסת את ההורדה ל"אחד ממייסדי BreachForum וחבר בשם diencracked", כאשר כתובתו של החבר ניתנת כ-diencracked@cock.li, ופועל מכתובת IP בטורונטו כאשר אזור הזמן של המכונה מוגדר ל-UTC-4. החברה מוסיפה הסתייגות משלה באותו משפט: "לפחות זה מה שנתוני Git מראים." הדוח של Dark Reading מ-22 בספטמבר נושא את אותו ייחוס למייסד BreachForum ולכינוי diencracked.

הקמפיין במעלה הזרם מתועד טוב יותר מאשר הזהויות שמאחוריו. החבילות של TanStack קיבלו דלת אחורית ב-11 במאי 2026, כאשר פורסמו 84 גרסאות זדוניות ב-42 חבילות; The Hacker News מתעד את הפריצה כ-CVE-2026-45321 ומציין את ההודעה הרשמית של TanStack עצמה בנוגע למטען גניבת פרטי ההתחברות. ציר הזמן של CrowdSec מציין שב-22 במאי, באותו יום שבו נוצרה העתקת המאגר, TeamPCP — שמסומן על ידי CrowdSec בשם UNC6780 — נטל אחריות לפריצה למאגרים השייכים ל-Mistral AI.

מה מבוסס, ומה לא

Dark navy HTML card headed 'Established, asserted, and simply absent', kicked 'crowdsec · what the record supports', subtitled 'The archive grades this record confidence A, disputed false, real harm true. That grade covers the event; it does not extend to every claim made about it.' Three columns. 'Established', green: about 170 private repositories copied on 22 May 2026 in a nine-minute window from GitHub's own Git activity records; the account belonged to a departed developer and was revoked 25 May, three days later; 83 user email addresses and the details of 51 potential investors from 2020 appeared in the published archive; no infrastructure or database access and no code altered, per CrowdSec's audit. 'Asserted, not proven', amber: that the laptop was infected through TanStack, since CrowdSec's dev machines came back clean and its repository scan was inconclusive; which poisoned package arrived and when, which CrowdSec says it did not establish; that the downloaders were a BreachForum founder and the member diencracked, offered as what the Git data shows. 'Missing from the record', grey: GitHub's own findings, since support traced the token but no GitHub statement appears in the report; any arrest, charge or court record tying a named person to the copy; any independent forensic examination of CrowdSec's systems. A highlighted band reads 'The strongest evidence in the case is a Git fetch log inside a two-hour window GitHub handed over on request. The weakest is an attribution hedged in the same sentence that makes it.' A footer cites CrowdSec on 18 September, The Hacker News on 19 September and Dark Reading on 22 September. The OrcaRouter logo sits in a white strip at the bottom right.

הוכח: העתקה של כ-170 מאגרי קוד פרטיים בוצעה ב-22 במאי 2026, בתוך חלון של תשע דקות, באמצעות חשבון GitHub של מפתח שעזב, שעדיין היה בתוקף — רצף ששוחזר מרשומות פעילות ה-Git של GitHub עצמו, ולא הוסק. כמו כן הוכח מדברי החברה עצמה: חשיפת 83 כתובות דוא״ל של משתמשים ופרטיהם של 51 משקיעים פוטנציאליים, הביטול ב-25 במאי, אסימון ה-SNS שנבדק, והממצא שלא שונה קוד ולא הייתה גישה לתשתית או למסד נתונים.

לא נקבע: איזו חבילה מורעלת הגיעה למחשב הנייד, ומתי. CrowdSec מציינת במפורש כי לא זיהתה אף אחד מהשניים. סריקת המאגרים של החברה לא העלתה מסקנה חד-משמעית, ומכונות המפתחים שלה נמצאו נקיות — דבר שמתיישב באי-נוחות עם מחשב נייד שלפי הודאת החברה עצמה נפרץ. הפער מוכר ולא נסגר.

לא פורסם: הצד של GitHub בחקירה. ב-CrowdSec אומרים שצוות התמיכה של GitHub אישר את מקור TanStack, אך The Hacker News מציין שהדוח של החברה אינו כולל ממצאים מ-GitHub עצמה, ו-GitHub לא פרסמה גרסה משלה של מהלך חיי הטוקן.

אימות:Dark Reading, The Hacker News ו-DevOps.com סיקרו כל אחד מהם את התקרית בתוך שבוע, ושלושתם נשענים על הדוח של CrowdSec ועל הודעת הייעוץ של TanStack ולא על בדיקה פורנזית עצמאית של מערכות CrowdSec. Dark Reading מוסיף תגובה מאנשי מקצוע חיצוניים, ובהם Denis Calderone מ-Suzu Labs, שכינה את מחדל הביטול "דברים בסיסיים". פתק מחקר של Cloud Security Alliance מתאריך 20 בספטמבר חוזר על אותו רצף, אך המסמך נושא הסתייגות משל עצמו שלפיה הוא נוצר בעזרת AI ולא עבר סקירה רשמית של CSA — כדאי לדעת זאת לפני שמחשיבים אותו כממצא עצמאי שני. הארכיון מדרג את הרשומה: רמת מהימנות A, שנויה במחלוקת false, נזק ממשי true.

ההצהרה הראשונה, והתיקון

ההצהרה הפומבית הראשונה של CrowdSec, ב-17 בספטמבר, אמרה כי "שום נתוני לקוחות, שמות משתמשים/סיסמאות, שמות, ארגונים או כל דבר אחר לא דלפו, ו-CrowdSec אינה מאחסנת מידע אישי מזוהה או יומני לקוחות; ההשפעה מוגבלת ל-CrowdSec." היא גם העלתה השערה טכנית: שרכיב פנימי נפרץ באמצעות דלת אחורית כדי לגנוב מפתח API המסוגל לקרוא קוד פרטי.

הדוח המלא יותר, יום לאחר מכן, החליף את ההשערה הזו בעדותו של העובד שעזב, וחשף את 83 הכתובות ואת 51 המשקיעים. The Hacker News מתאר זאת כתיקון של הטענה המוקדמת. ההצגה של CrowdSec עצמה צרה יותר: 83 הכתובות הגיעו מרשימת ניטור של מדעי הנתונים ולא מרשומות לקוחות, ופרטי המשקיעים היו מ-2020. שני התיאורים יכולים להיות נכונים בו-זמנית — הכתובות לא היו חשבונות לקוחות, והן עדיין היו נתונים אישיים במאגר שפורסם בפורום פשיעה. החברה אומרת שהיא תיידע את המשתמשים והמשקיעים שנפגעו ותדווח על ההדלפה לרשויות.

מה השתנה לאחר מכן

• פרטי התחברות ואסימונים שנמצאו בארכיון הוחלפו בליל 16 בספטמבר ובמהלך 17 בספטמבר, כאשר יתרת ההחלפה הושלמה בבוקר שלמחרת.

• זיהוי ותגובה בנקודות קצה פרוסים כעת על תחנות העבודה והמחשבים הניידים של אנשים שנוגעים בבסיס הקוד או בתשתית של CrowdSec; החברה מציינת את Aikido Security כמוצר. Humeau מודה שהיה צריך שזה יהיה במקום קודם לכן, ומודה גם שלא סביר שמחשב של עובד לשעבר הריץ אותו.

• ספי אלגוריתם הקונצנזוס שנחשפו בהדלפה מותאמים, עם ניטור הדוק יותר לאיתור סטייה סטטיסטית בכל רשת רשימת החסימה.

• החברה הציבה לעצמה יעד לקצר את אותה תגובה — מלאי, רוטציה, פורנזיקה וגילוי — מ-48 שעות לפחות מ-24.

• יוצרים קשר ישירות עם משתמשים ומשקיעים שנפגעו, והדליפה מדווחת לרשויות, בניסוח של החברה.

מדוע זה נמצא בארכיון אירועי בינה מלאכותית

המעורבות של AI כאן היא תשתיתית, וכדאי להיות מדויקים לגבי מה זה אומר. שום דבר בתיאור של CrowdSec לא מתאר מערכת AI שמקבלת החלטה במהלך החדירה; הגורם היה אדם או אנשים שהשתמשו בטוקן גנוב. מה שהופך את המקרה לאירוע בתעשיית ה-AI הוא רדיוס ההשפעה. הספריות של TanStack בונות את הממשקים של חלק ניכר מהתוכנה המודרנית, התולעת שאספה את הטוקן בנויה לקחת אישורי ענן, SSH וספקי מודלים במעבר אחד, והחומר שהועתק מתוך CrowdSec כלל סקריפטים ומודלים של מדעי הנתונים ולא רק קוד אפליקציה.

אותה מערכה הגיעה ישירות גם לחברות בינה מלאכותית. ציר הזמן של CrowdSec מתעד את TeamPCP כמי שטוענים לפגיעה במאגרי Mistral AI ב-22 במאי, ו-The Hacker News מדווח כי שני התקנים של עובדי OpenAI נפגעו, עם גישה בלתי מורשית לקבוצה מוגבלת של מאגרי קוד פנימיים. הארכיון מתעד את מקרה CrowdSec כקורבן השני במורד הזרימה של פרצת TanStack ממאי, אחרי אותם התקנים של עובדי OpenAI.

המרחק בין העותק לבין גילויו הוא החלק שצריך לנוע. המאגרים נלקחו ב-22 במאי; CrowdSec נודעה על ההדלפה ב-16 בספטמבר, כאשר צוות Fuites Info יצר קשר עם החברה בנוגע לפוסט ב-pwnforum — 117 ימים לאחר מכן, ולא מהניטור שלה עצמה. המנגנון שאפשר את העיכוב לא היה אקזוטי: חשבון ששרד שלושה ימים מעבר לתכליתו, טוקן שלא הותיר עקבות ביומנים שהחברה יכלה לקרוא, ומחשבים ניידים של מפתחים ללא זיהוי נקודות קצה. ל-CrowdSec, חברה שמוכרת זיהוי איומים, היו כל השלושה.