
sckit: חבילות הזיכרון ל-AI של MemTensor הוחדרו בהן דלתות אחוריות כדי לגנוב פרטי גישה ופרומפטים של סוכנים
- OrcaחדשOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 לכל 1M טוקנים · 109 tok/s
- MoonshotחדשMoonshotAI: Kimi K3.1 Pro2026-10-2455אינטליגנציה
- OrcaחדשOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 לכל 1M טוקנים · 170 tok/s
- minimaxחדשMiniMax: M3.1 Flash2026-10-1943אינטליגנציה
- OrcaחדשOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 לכל 1M טוקנים · 42 tok/s
- deepseekחדשDeepSeek: DeepSeek V4.1 Flash 10172026-10-1745אינטליגנציה
- DeepSeekחדשDeepSeek: DeepSeek V4.1 Flash2026-10-1740אינטליגנציה
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 לכל 1M טוקנים · 130 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952אינטליגנציה
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856אינטליגנציה
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 לכל 1M טוקנים · 926 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238אינטליגנציה
- OpenAIOpenAI: GPT-6 Sol2026-09-2248אינטליגנציה
- AnthropicAnthropic: Claude Opus 5.52026-09-2258אינטליגנציה
- xAIGrok 4.72026-09-2146אינטליגנציה
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 לכל 1M טוקנים · 228 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 לכל 1M טוקנים · 1906 tok/s
- OpenAIOpenAI: GPT-6 Astra2026-09-0453אינטליגנציה77כתיבת קוד
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241אינטליגנציה76כתיבת קוד
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245אינטליגנציה76כתיבת קוד
ארבע מהדורות של MemTensor שפורסמו ב-23 בספטמבר 2026 נשאו את אותו אימפלנט Go מנוקה מסמלים, וכל אחת מהן הייתה הגרסה החדשה ביותר ברג'יסטרי שלה בזמן שהייתה פעילה. החבילה של npm, @memtensor/memos-cloud-openclaw-plugin יצאה בתור 0.1.21 ב-02:23 UTC, 0.1.23 ב-03:49 ו-0.1.25 ב-04:36; החבילה של PyPI, MemoryOS יצאה בתור 2.0.34 ב-05:25. כל ארבעתן נשלחו עם sckit, שמתחיל כאשר שער הסוכן של OpenClaw עולה, מתחיל שוב בכל אחזור זיכרון — כשטקסט ההנחיה של המשתמש מועבר אליו במשתנה סביבה — ובחבילת Python, מתחיל בייבוא רגיל של מודול memos. לאחר מכן הוא סורק את ספריית הבית לאיתור סודות של npm, PyPI, GitHub, GitLab, AWS, Vault ו-SSH ושולח את מה שהוא מוצא לשרתים תחת skyleen[.]fr. Socket, StepSecurity, SafeDep ו-Aikido תיעדו את הפריצה באופן עצמאי באותו יום, ואף אחד מהם לא דיווח על ראיות לכך שהאימפלנט רץ על מארח אמיתי. ארכיון התקריות של Orca AI מחזיק ערך זה במלואו, לצד כל תקרית אחרת בשרשרת האספקה שתיעד, וכל רשומה נושאת דירוג מהימנות ומצב נזק משלה.
ארבע מהדורות, ודוח באג פומבי בעיצומן
MemOS הוא מסגרת הזיכרון בקוד פתוח של MemTensor עבור סוכני LLM, וחבילת ה-npm היא המחבר שמאפשר לסביבת ההרצה של סוכן OpenClaw לקרוא ולכתוב לשירות זיכרון מתארח; StepSecurity מציינת שאותה חבילה גם מכריזה על נקודות אינטגרציה עבור סביבות ההרצה Clawdbot ו-Moltbot. Socket מדדה את המאגר בכ-11,500 כוכבים ו1,100 פורקים כשפרסמה. מעמד זה הוא הסיבה לכך שהפריצה משכה ארבע חקירות נפרדות: כפי שניסחה זאת StepSecurity, הדבר "מציב את התוסף בתוך תהליך שמטפל באופן שגרתי בקלט משתמש ועלול לרשת אישורי גישה יקרי ערך." האנשים שנחשפו הם אלה שהתקינו את אחת משתי החבילות — מפתחים על המכונות שלהם, ומריצי CI ומכולות שהריצו רק חבילת בדיקות.
רצף ה-npm הוא החלק הברור ביותר בתיעוד, משום שחותמות הזמן של הרישום פומביות ומספר חברות תיעדו אותן באופן עצמאי. הדוח של Socket וציר הזמן של SafeDep תואמים בכל דקה: 0.1.21 בשעה 02:23:04, 0.1.22 בשעה 03:45:44, 0.1.23 בשעה 03:49:20, 0.1.24 בשעה 04:33:30 ו-0.1.25 בשעה 04:36:58. גרסאות 0.1.22 ו-0.1.24 היו נקיות — Socket אומרת שהן התאימו ל-0.1.20 פרט למחרוזות גרסה — והמטען חזר שלוש וחצי דקות לאחר כל אחת מהן.
הזינוק בגודל הוא הרמז. Socket מדדה את 0.1.20 בכ-272 KB במצב לא ארוז, ואת 0.1.21 ב-43.6 MB, משום שהמהדורות הזדוניות ארזו שישה קבצי בינארי לפלטפורמות המקושרים סטטית בגודל של כ-7.4 MB כל אחד. PyPI מציגה אותו דפוס: ה-wheel של 2.0.34 היה 19,201,772 בתים לעומת 951,210 עבור 2.0.33, לפי Socket.
בשעה 04:17 UTC — שש עשרה דקות לפני 0.1.24 הנקייה ותשע עשרה דקות לפני שהמטען חזר כ-0.1.25 — משתמש GitHub בשם omeridel פתח את issue #173 במאגר התוסף, שכותרתו "גרסאות זדוניות 0.1.21 ו-0.1.23 פורסמו ל-npm — נראה שטוקן הפרסום נחשף." הדיווח מציין כי 0.1.23 היה אז התג העדכני ביותר, כי אף אחת מהגרסאות לא תאמה שום קומיט או תג במאגר, וכי הקומיט הלגיטימי האחרון היה מתאריך 14 באוגוסט. הוא נותר פתוח ללא תגובות מהמתחזקים נכון ל-26 באוקטובר 2026.

מה sckit עושה לאחר טעינת החבילה
אף אחת מהחבילות לא השתמשה ב-install hook, ולכן העצה הרגילה לגבי --ignore-scripts לא הייתה רלוונטית. הניתוח של StepSecurity של וריאנט ה-npm מתאר קובץ חדש, lib/sckit.js, שמייצא משגר שקוד האתחול וקוד שליפת הזיכרון הקיימים של התוסף מייבאים וקוראים לו. בעת האתחול הוא מפעיל תהליך מנותק .sckit/<os>-<arch>/sckit עם stage0 --config64 וסביבת ההורה המלאה; בעת שליפה הוא עושה את אותו הדבר ומעביר את פרומפט המשתמש שעבר ניקוי דרך משתנה סביבה בשם SCKIT_EVENT_TEXT. Socket ניסחה את ההשלכה בפשטות: לפיכך הבינארי רץ שוב בכל שליפה.
גרסת PyPI קצרה יותר, ובפועל קשה יותר להימנע ממנה. Socket מצאה שmemos/log.py קוראת לפונקציית טריגר בתוך memos/_stage0.py כאשר הלוגינג מוגדר, ש-149 מודולים קוראים ללוגר ברמת המודול, ושהייבוא רגיל של מודול memos מספיק לפיכך כדי להפעיל את המטען פעם אחת בכל תהליך. הניתוח של StepSecurity של אותה חבילה היה סטטי לחלוטין — הוא לא התקין, ייבא, בנה או הפעיל אותה.
היקף האיסוף הוא כל ספריית הבית. SafeDep מציגה את שורש המלאי בתור $HOME ואת הקבצים הממוקדים בתור .npmrc, .pypirc, .git-credentials, .netrc, id_rsa, id_ecdsa, id_ed25519, .vault-token, msal_token_cache, access_tokens.json ו-access_tokens.db, ובנוסף משתני סביבה ששמותיהם מכילים token, secret, password, API key או database URL, ובנוסף פורמטים מזוהים של טוקנים עבור GitHub, GitLab, npm, PyPI, Hugging Face, Slack, Stripe, AWS ו-SendGrid. רשומות ה-OSV עבור שתי החבילות, MAL-2026-16476 עבור npm ו-MAL-2026-16475 עבור PyPI, מתארות את אותה רשימת קבצים ומוסיפות שפרוטוקול ה-command-and-control משתמש ב-CBOR, בחילופי מפתחות X25519 וב-XChaCha20-Poly1305, עם leases חתומים ומודולים שנמסרים בזמן ריצה — כך שתוכן המודולים מעולם לא נצפה, אלא רק ה-loader שמושך אותם.
שני פרטים מעצבים את מה שמגן עדיין יכול לשחזר. הקובץ הבינארי מכיל שגרות מחיקה עצמית בשם scheduleSelfDelete וdeleteExecutable, על פי רשומת OSV, ולכן ההנחיה היא לצוד אחר חפצי תהליך ורשת ולא קבצים. וגרסה 0.1.25 הוסיפה את lib/tls-trust.js, שמגדיר את SSL_CERT_FILE לקובץ רשויות אישור ארוז המכיל 145 אישורים במערכות לינוקס מינימליות, לפי StepSecurity — תיקון שנועד לגרום לתעבורה שלה לעבוד במכולות שאין להן מאגר אמון מערכתי.

צינור השחרור היה דרך הכניסה.
השחזור של SafeDep הוא התיאור המפורט ביותר של הגישה הראשונית, והוא מצביע על GitHub Actions ולא על סיסמת registry שנגנבה. בין 00:48 ו-02:03 UTC, חשבון GitHub שפעל בשם Memtensor-AI יצר, דחף ומחק ענף בשם sc/release-0.1.21-20260922-cloud חמש פעמים. קומיט 9b97ec6 שינה את סקריפט ה-workflow .github/scripts/validate-release-confirmation.mjs כך שהוסיף ערך BASH_ENV ל-$GITHUB_ENV, מה שגרם לשלבי shell לא-אינטראקטיביים מאוחרים יותר לטעון קובץ שסופק על ידי התוקף sckit-publish-bridge.sh לפני הפעלת הפקודות שלהם. הגשר הזה בדק את שם החבילה ואת פסק הזמן של 150 השניות של שלב הפרסום, קרא לאספן הטוקנים עם NPM_TOKEN או NODE_AUTH_TOKEN, מחק את עצמו ויצא עם 1 — כך שהפרסום נכשל לאחר שהטוקן כבר נלקח. מהדורת ה-npm הזדונית הראשונה הופיעה עשרים דקות לאחר הדחיפה האחרונה של הענף.
מסלול ה-PyPI השתמש באותו טריק נגד צינור עיבוד אחר. SafeDep מדווח שתג v2.0.34 הצביע על קומיטים לא חתומים שלא היו על main, ושקומיט b52958f, שנכתב בשם "MemTensor CI Review", הוסיף את ששת הקבצים הבינריים, טוען Python ו-backend בנייה מותאם בשם sckit_poetry_build. ה-backend הזה כתב BASH_ENV שמצביע על _pypi_bridge.sh אל תוך $GITHUB_ENV; הגשר פעל רק בתוך ה-wrapper של העלאת twine, אחזר אינדקס חתום ממארח skyleen[.]fr, אימת emitter באמצעות מימוש Ed25519, הדפיס שורת סימון, ביטל את סיסמת ההעלאה ויצא בלי להעלות דבר. כעבור כשעתיים קומיט 41bf5c7 הסיר את הקריאה הזו עם ההודעה "chore: allow native PyPI upload [skip ci]", התג נמחק ונוצר מחדש בתוך עשר שניות, וההעלאה ל-PyPI באה 62 שניות לאחר מכן. SafeDep מפרש את הקומיט הראשון כריצת לכידת טוקן ואת השני כריצה שאפשרה ל-workflow של MemTensor עצמו לבנות ולפרסם את החבילה הזדונית עם הטוקן האמיתי של הפרויקט.
לא כל הדיווחים מתיישבים בנקודה זו. Socket הבחינה כי מהדורות ה-npm הגיעו מאותו חשבון npm כמו גרסאות לגיטימיות קודמות וחסרו gitHead, מה שהיא פירשה כסימן לכך שהן לא הופקו על ידי ה-CI של הפרויקט, והצהירה כי אינה יכולה לאשר כיצד התוקף השיג גישת פרסום. SC Media, שדיווחה על ממצאי Socket ב-24 בספטמבר, הסיקה את אותה מסקנה בדבר פגיעה בחשבון. שתי הגרסאות מסכימות שפרטי גישה לפרסום נלקחו מצינור השחרור, ונחלקות בשאלה כיצד נוצר הארטיפקט של npm עצמו; איש לא פרסם את יומני ה-workflow, משום ש-Actions API של GitHub לא הראה הרצות אחרי 7 בספטמבר ו-SafeDep מסיקה שהרשומות נמחקו. כיצד חשבון Memtensor-AI השיג הרשאת push מלכתחילה אינו ידוע בשתי הגרסאות; SafeDep מגדירה טוקן חשבון גנוב כמהיר אך לא מאומת.
מבוסס, מוסק וחסר
ציון הוודאות של הרשומה הוא A והוא אינו שנוי במחלוקת, וכדאי לדייק בנקודה זו, מפני שהוודאות נקשרת למה שפורסם ולא למה שהוא עשה.
• נקבע: תוכן ארבעת הארטיפקטים, ששוחזר בניתוח סטטי ב-Socket, StepSecurity ו-SafeDep; זמני הפרסום ב-npm והתג העדכני ב-0.1.25; הזינוק בגודל בשתי האקוסיסטמות; היסטוריית הקומיטים, התגים והענפים בשני המאגרים; תשתית skyleen[.]fr ומזהי הקמפיין cloud-openclaw-semi-nuclear ו-memos-semi-nuclear; ותצורת ה-payload, שתוקפה יפוג ב-22–23 באוקטובר 2026 לפי Socket ו-SafeDep.
• הוסק: שהכלי נכתב בעזרת מודל שפה, דבר ש-SafeDep מציינת ישירות ומכנה הסקה; ושטוקני הפרסום הגנובים נועדו לשימוש חוזר, מה שמחרוזת הערוץ של התצורה — "exact-ref-one-use-NPM_TOKEN" — תומכת בו אך אינה מוכיחה.
• לא נקבע: מי היה התוקף; האם עותק כלשהו של sckit הורץ אי פעם מחוץ לארגז חול; האם פרטי גישה כלשהם עזבו מארח; האם הנחיה שהוקלדה לסוכן OpenClaw הגיעה אל התוקף; והאם חבילת המשך כלשהי פורסמה מחדש. Socket ו-StepSecurity פעלו שתיהן באופן סטטי, ו-StepSecurity מציינת כי בניתוח שלה לא נצפו הרצת תהליך, העברת סוד, חילוץ מידע מוצלח, התקנת תהליך עבודה או פרסום חבילה נוסף.
הפער הזה הוא הסיבה לכך שהארכיון רושם את התקרית הזו כשנזק ממשי מסומן כלא נכון. החשיפה אמיתית ורחבה — כל מי שהתקין גרסה מושפעת נדרש להתייחס למארח כאל נפגע — אך נזק, במובן של פרטי התחברות שהוכח שנעשה בהם שימוש או מערכת שהוכח שהגיעו אליה, לא נרשם על ידי אף אחת מארבע החברות החוקרות.
![A self-built HTML card headed 'What the record supports', titled 'Four investigating firms, no confirmed victim', subtitled 'Socket, StepSecurity, SafeDep and Aikido documented the same four artefacts on 23 September 2026'. The left column, headed 'Established by static analysis', lists: four malicious releases, npm 0.1.21, 0.1.23 and 0.1.25 and PyPI MemoryOS 2.0.34; one implant, the same stripped Go binary sckit in all four; the publish window 02:23 to 05:25 UTC with 0.1.25 tagged latest; package growth from 272 KB to 43.6 MB on npm and 951 KB to 19.2 MB for the PyPI wheel; six builds per package for Linux, macOS and Windows on amd64 and arm64; collection scoped to the whole home directory across registry, source-control, cloud, Vault and SSH secrets; exfiltration to servers under skyleen[.]fr; and OSV tracking as MAL-2026-16476 and MAL-2026-16475. The right column, headed 'Not established', lists: the attacker's identity; how Memtensor-AI obtained push access; whether any copy ever executed outside static analysis; whether a stolen secret reached the attacker; whether any prompt text was received; and whether any downstream package was republished. A footer reads 'Archive classification for this record: incident, severity high, confidence A, real harm false.' The OrcaRouter logo is composited in the bottom-right corner.](https://cms.orcarouter.ai/api/media/file/4-2644.png)
התולעת שמעולם לא נראתה מתפשטת
קובצי הבינארי מכילים יותר מאשר גנב מידע. SafeDep מפרטת פונקציות בשם recursivePublish, prepareRemoteNode, prepareRemotePython ו-prepareRemoteWorkflow, וכן תבנית GitHub Actions מוטמעת שמופעלת בעת push והיכולת לכתוב קובץ workflow בשם runtime-update.yml אל תוך מאגרים שהשתיל יכול להגיע אליהם. Socket מצאה מחרוזות בנוגע לקידוד מניפסטים של חבילות והתקנת קבצי מאגר, והעריכה שקובצי הבינארי עשויים להיות מסוגלים לפרסם מחדש חבילות באמצעות אסימוני registry גנובים.
זהו תכנון של תולעת. היא אינה תולעת שנצפתה פועלת. StepSecurity לא מצאה שום ראיה שהלוגיקה שימשה אי פעם להתפשטות, והערת המחקר של Cloud Security Alliance מ-25 בספטמבר מפרשת את היכולת כפוטנציאל מוגבל להתפשטות עצמית ולא כהתנהגות תולעת מאושרת. מספר כלי תקשורת תיארו את המקרה כתולעת שרשרת האספקה הראשונה שמכוונת לתשתית הזיכרון של סוכני AI; התיאור הוגן כאמירה על התכנון, והדוחות אינם תומכים בו כאמירה על מה שאירע.
מה השתנה לאחר מכן
מאגרי החבילות נוקו באותו יום. בבדיקה ב-26 באוקטובר 2026, המטא-נתונים של חבילת npm כבר לא מפרטים את {{1}}0.1.21{{/1}}, {{2}}0.1.23{{/2}} או {{3}}0.1.25{{/3}} בין הגרסאות שלה, התג {{4}}latest{{/4}} מצביע על {{5}}0.1.24{{/5}}, והחבילה שונתה לאחרונה ב-{{6}}11:53 UTC ב-23 בספטמבר{{/6}}. שני תגי dist יוצאי דופן עדיין מצורפים — {{7}}clean-inverse-0-1-23{{/7}} שמצביע על {{8}}0.1.22{{/8}} ו{{9}}clean-inverse-0-1-25{{/9}} שמצביע על {{10}}0.1.24{{/10}} — ומשקפים את שתי ההפצות הנקיות שהפריעו לזמן קצר להפצות הזדוניות. ב-PyPI, {{11}}MemoryOS 2.0.34{{/11}} נעלם וההפצה החדשה ביותר היא {{12}}2.0.33{{/12}}, שהועלתה ב-{{13}}3 בספטמבר 2026{{/13}}; ומאז לא הייתה הפצה נוספת ב-PyPI בשבעת השבועות האחרונים.
מה שלא השתנה הוא הדיווח הציבורי של הפרויקט. המאגר אינו מפרט התראות אבטחה, ה-issue ב-GitHub מ-04:17 ביום התקרית עדיין פתוח וללא מענה, ואף אחד מהדיווחים שנסקרו כאן אינו מצטט הצהרה מ-MemTensor או מ-OpenClaw. אף אחת מחבילות הזדון לא נשאה אישור מקור (provenance attestation), מה שלדברי SafeDep הסיר את האות היחיד לכך שהארטיפקטים נבנו מ-commit בלתי צפוי.
התגובה שכן קיימת היא בצד הזיהוי: StepSecurity הוסיפה את דומייני השליטה-והפיקוד (C2) של skyleen[.]fr לרשימת החסימה הגלובלית שלה, ושתי החבילות נמצאות במעקב ב-OSV כ-MAL-2026-16476 ו-MAL-2026-16475.
אם הותקנה גרסה מושפעת
ההנחיה של Socket היא המחמירה והפשוטה ביותר: אם גרסה כלשהי מהרשימה נטענה או יובאה, יש להתייחס למארח הזה כאל פרוץ, כולל מריצי CI וקונטיינרים שהריצו רק בדיקות. הצעדים הקונקרטיים שעליהם מסכימות ארבע החברות:
• הסר את החבילה והצמד לגרסה נקייה — npm 0.1.20, PyPI 2.0.33. StepSecurity מזהירה שהניתוח שלה לא ביסס קו בסיס נקי ל-PyPI, בעוד SafeDep ו-SC Media מציינים שניהם את 2.0.33 כגרסה התקינה האחרונה.
• חפש את שורת הפקודה של התהליך, מכיוון שהקובץ הניתן להרצה עשוי למחוק את עצמו: sckit stage0 --config64, ואת משתנה הסביבה SCKIT_EVENT_TEXT.
• מחק את ספריות המצב ~/.openclaw/.cache/runtime ו~/.memos/.cache/runtime, ובדוק במאגרים אם קיים runtime-update.ymlworkflow לא צפוי בשם .sckit/ או ספריות
• החלף כל פרטי גישה הנגישים מתיקיית הבית ומסביבת התהליך, ממכונה נקייה: npm, PyPI, GitHub, GitLab, AWS, Vault, SSH, Hugging Face, Slack, Stripe ו-SendGrid, וכל ערכי .env. אסימוני Registry ובקרת מקור יבואו ראשונים.
• בדוק את הפרסומים של החבילות שלך, למקרה שנעשה שימוש בטוקן פרסום גנוב כדי להפיץ גרסאות שלא כתבת.
• חסום את skyleen[.]fr ואת תת-הדומיינים שלו, וקרא את יומני היציאה עד 23 בספטמבר.
• התייחס לכל הנחיה או סוד שהודבקו ועברו דרך התוסף בזמן שהיה פעיל כאל חשופים. זהו החלק בתקרית הספציפי לזיכרון הסוכן: השתל לא נזקק לגרד תמליל, משום שהתמליל הועבר לו בכל אחזור.
