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

Loom for AWS העניק הרשאת סופר-אדמין לכל בקשה לא מאומתת — CVE-2026-103956

מחבר

Gideon Frost

תאריך פרסום

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

ב-2 באוקטובר 2026 פרסמה AWS את הבולטין הביטחוני 2026-124-AWS, החושף את CVE-2026-103956ב-Loom for AWS, הפלטפורמה בקוד פתוח של AWS Labs לבנייה, פריסה וניהול של סוכני AI על Amazon Bedrock AgentCore Runtime. בפריסה שבה לא הוגדר ספק זהויות, תלות האימות של ה-backend העניקה זהות קבועה של סופר-אדמין לכל בקשה נכנסת — כולל בקשות שלא נשאו כותרת Authorization כלל. לקוח מרוחק שהצליח להגיע ל-backend יכול היה לרשום שרתי כלים, לקרוא אישורי אינטגרציה מאוחסנים ולשכתב את מדיניות תפקידי ה-IAM המשויכות לתפקידי סוכנים מנוהלים: שליטה מנהלתית מלאה במישור הבקרה של הסוכנים ללא כל אימות. NVD מדרגת את הפגם ב-10.0, קריטי, הן לפי CVSS 3.1 והן לפי CVSS 4.0. הקרדיט על הגילוי ניתן לקנת' קוקס, במסגרת חשיפה מתואמת. ההודעה מתארת למה הפגם היה מאפשר; היא אינה מתארת מה מישהו עשה איתו.

מה שתלות האימות בעצם עשתה

הפגם היה בתלות האימות של ה-backend. לפי ייעוץ האבטחה של GitHub GHSA-vgmj-998f-r8mp, נתיב הקוד בתלות האימות של ה-backend —get_current_user, הפונקציה ב-backend של Loom, החזירה זהות מנהל מקודדת קשיח, חשבון סופר-אדמין בקבוצת g-admins-super, בכל פעם שלא היה קיים מאגר משתמשים של Amazon Cognito ולא ספק זהות חיצוני פעיל. היא לא בדקה אם הקורא הציג טוקן. היא לא עברה למצב של דחייה. היא החזירה את זהות המנהל בכל זאת.

הבולטין של AWS מתאר את ההשלכה באותו אופן: הפגם איפשר לכל לקוח ברשת לקבל סמכות ניהולית מלאה על מישור הבקרה של הסוכן. CVE-2026-103956 ממופה ל-CWE-306 (אימות חסר עבור פונקציה קריטית) ו-CWE-1188 (אתחול ברירת מחדל לא מאובטח של משאב). וקטור CVSS 3.1 של NVD הוא AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — נגיש ברשת, מורכבות נמוכה, ללא הרשאות, ללא אינטראקציית משתמש, היקף שונה, השפעה מלאה על סודיות, שלמות וזמינות.

המסגור החשוב, והחלק שמסביר מדוע ציון CVSS 10.0 נחת על פרויקט קוד פתוח קטן, הוא שפריסה ללא IdP אינה אקזוטית. התקנה חדשה של Loom שטרם חובר אליה Cognito נמצאת בדיוק במצב הזה, וכך גם פריסה שתצורת ספק הזהויות שלה מעולם לא הוגדרה או שהפסיקה להיפתר. ההודעה מתייחסת לכך כמצב נפוץ ולא כתצורה שגויה שהמפעיל היה צריך ליצור בעצמו.

מה שלקוח לא מאומת יכול להגיע אליו

• רישומי סוכנים ושרתי כלים: הלקוח יכול היה לרשום או לשנות את שרתי הכלים שסוכן רשאי לקרוא להם, וזו, בארכיטקטורת קריאה לכלים, ההבדל בין סוכן שקורא פנייה ובין סוכן שמריץ משהו.

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

• מדיניויות תפקיד IAM בתפקידי סוכנים מנוהלים: הייעוץ מתאר כתיבה מחדש של מדיניויות תפקיד IAM המצורפות לתפקידים ש-Loom מנהלת עבור סוכניה, וזהו השלב שהופך שליטה בשכבת התזמור לשליטה במה שהסוכנים יכולים לעשות בתוך חשבון ה-AWS.

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

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

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

מבוסס. הפגיעות הייתה קיימת ומתועדת במקורות ראשוניים מוסכמים: עלון האבטחה 2026-124-AWS של AWS מ-2 באוקטובר 2026, ייעוץ GitHub GHSA-vgmj-998f-r8mp שפורסם באותו יום, ורשומת CVE-2026-103956 של NVD. הגרסאות המושפעות (לפני 1.6.1), ציוני CVSS, מיפויי CWE, גרסת התיקון והקרדיט עקביים ביניהם. רשומת הארכיון לאירוע זה מדורגת ברמת ביטחון A, אינה שנויה במחלוקת, ומכילה real_harm כ-false.

השדות של הרשומה עצמה מתארכים את החשיפה ל-2 באוקטובר 2026, בדיוק של יום, ומתארים טענת הוכחת היתכנות פומבית כלא מאומתת; לא הבולטין ולא הייעוץ נושאים עדות לתקיפה. הרשומה הציבורית של NVD עבור CVE-2026-103956 מפרטת את קטלוג הניצול הידוע של CISA כריק עבור CVE זה, ורשומת הארכיון מציינת את real_harm כ-false. אז: פגם שלקוח רשת שאינו מאומת יכול היה להשתמש בו, בלי עדות במקורות שמישהו עשה זאת.

HTML card titled 'What the record establishes — and what it does not', kicked 'Record 2026-10-02-loom-aws-agent-control-plane-cve-2026-103956' and subtitled with the source list: AWS Security Bulletin 2026-124-AWS, GHSA-vgmj-998f-r8mp and the NVD record, all published 2 October 2026, with the archive classification confidence A, not disputed, real harm recorded as false. Two columns run side by side. The left column, headed 'Established' in cyan, lists six items: CVSS 10.0 critical under both CVSS 3.1 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) and CVSS 4.0; CWE-306 and CWE-1188 — missing authentication for a critical function and insecure default initialization of a resource; affected versions before 1.6.1, where the auth dependency returned a fixed super-admin identity when no Cognito pool or external identity provider was configured; reach by any network client that could reach the backend, including registering tool servers, reading stored integration credentials and rewriting IAM role policies on managed agent roles; fixed in Loom 1.6.1, released 4 August 2026, about two months before the bulletin named the CVE; and credit to Kenneth Cox through coordinated disclosure. The right column, headed 'Not established' in amber, lists six items: no confirmed exploitation in the wild, with the AWS bulletin and the GitHub advisory both silent on attacks; a public proof-of-concept claim that is unverified in the record and could not be corroborated from the cited sources; no CISA KEV entry for CVE-2026-103956 in the NVD record; no statement about whether the fixed release is deployed across the installed base of forks and derivative code; no estimate of exposed deployments, since nothing in the cited sources says how many Loom instances ran IdP-less and network-reachable; and the note that severity measures what the flaw allowed, not what happened, with no harm recorded for this entry. A footer reads 'Facts as published by AWS (Security Bulletin 2026-124-AWS), the Loom maintainers (GHSA-vgmj-998f-r8mp) and NVD. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

גם שווה להפריד. ה-CVSS 10.0 מודד מה שהפגם היה מאפשר, לא מה שהוא עשה. ציון 10.0 ללא ניצול וללא נזק מתועד הוא כמעט-פגיעה, והארכיון מסווג אותו כך.

התיקון, והפער של חודשיים לפני שניתן לו שם

AWS תיקנה את הבעיה ב-Loom 1.6.1, שיצא לאור ב-4 באוגוסט 2026. התאריך הזה חשוב: השחרור יצא כחודשיים בערך לפני הבולטין, ומספר ה-CVE היה קיים בפומבי. הערות השחרור של v1.6.1 מתארות את השינוי בלי לציין CVE — עקיפת האימות דורשת כעת הצטרפות מפורשת (opt-in) בתוספת לקוח loopback, ואחרת נכשלת באופן סגור עם 401 — כך שחומרת הפגם וכינויו היו גלויים רק למשתמשי Loom שעקבו אחרי המעקבים, ולא לכל מי שקרא את הערות השחרור בלבד. אותו שחרור הוסיף הקשחה מפני SSRF בבקשות גילוי של OAuth.

HTML card titled 'Two months between the fix and the name', kicked 'CVE-2026-103956' and subtitled with the point: the code was patched in August, but nothing in the 1.6.1 release notes pointed a Loom operator at a CVSS 10.0 authentication bypass. Four dated rows run down a vertical timeline. 4 August 2026: Loom 1.6.1 ships the fix, and the release notes describe the change without naming a CVE, with the local-dev no-IdP bypass now requiring an explicit opt-in plus a loopback client and otherwise failing closed with a 401; the same release adds SSRF hardening for OAuth discovery. 4 August to 2 October 2026: roughly two months of unstated severity, with the patch public and the defect gone but the CVE number and the 10.0 score not yet existing, so a Loom user reading release notes alone sees a security hardening rather than a critical advisory with a remediation deadline. 2 October 2026, 12:00 PM PDT: AWS Security Bulletin 2026-124-AWS is published, naming CVE-2026-103956 for Loom before 1.6.1 alongside CVE-2026-103957 and CVE-2026-103958, both fixed in 1.7.0, and CVE-2026-104019 in Amazon SageMaker Unified Studio. 2 October 2026: the GitHub advisory and the NVD record follow, with GHSA-vgmj-998f-r8mp published the same day and NVD publishing CVE-2026-103956 with CVSS 3.1 and CVSS 4.0 base scores of 10.0, critical. A footer reads 'Dates as published by the Loom 1.6.1 release notes, AWS Security Bulletin 2026-124-AWS, GHSA-vgmj-998f-r8mp and the NVD record. The cited sources do not state the release date of Loom 1.7.0. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

עבור פריסות שכבר חשופות, ההנחיה של AWS לפני שדרוג היא שיהיו מוגדרים במלואם Amazon Cognito user pool או ספק זהות חיצוני פעיל לפני שהבקאנד נגיש מעבר ל-loopback, כדי לוודא שהערך של LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV אינו מוגדר מחוץ לפיתוח מקומי, ולהגביל בינתיים גישת רשת או גישת קבוצות אבטחה אל הבקאנד. ההודעה מציינת במפורש שהגבלת רשת מפחיתה את הסיכוי לגישה לא מכוונת אך אינה סוגרת את הבעיה ללא השדרוג, ושגם פורקים וקוד נגזר זקוקים לתיקון.

אותו עלון, פגמים שונים

תקציר הרשומה מציין כי 2026-124-AWS אינו עוסק רק ב-CVE הזה. שני נושאים נוספים ב-Loom נחשפו באותו יום ותוקנו ב-Loom 1.7.0: CVE-2026-103957, SSRF בטיפול בגילוי OAuth2 שעלול לשלוח סודות לקוח של OAuth2 או אסימון גישה של משתמש אחר לנקודת קצה הנשלטת בידי תוקף (CVSS 3.1 6.2, CVSS 4.0 8.2), ו-CVE-2026-103958, SSRF בטיפול בחיבורים של שרת כלים וסוכן מרוחק שעלול להגיע לכתובות פנימיות שרירותיות, כולל נקודת הקצה של הקונטיינר להנפקת אישורים, ולקרוא את התגובות (CVSS 3.1 7.6, CVSS 4.0 8.3). שניהם דרשו משתמש מאומת המחזיק בהיקף mcp:write או a2a:write. הבולטין מכסה גם את CVE-2026-104019, הזרקת פקודות מערכת ב-OS בסקריפט אימות האתחול של Studio Space המשמש את Amazon SageMaker Unified Studio, שדורג 9.0 קריטי לפי CVSS 3.1, שלדברי AWS תוקן בצד השרת באמצעות שינוי סניטציה גלובלי שהוחל בהפעלה מחדש הבאה של Space.

לאחר השדרוג, AWS מבקשת מהמפעילים להחליף סודות לקוח של OAuth2 עבור אינטגרציות MCP ו-A2A, לבטל ולהנפיק מחדש טוקנים שהיו פעילים במהלך החלון המושפע, ואם הושגה גישה לפרטי ההזדהות של תפקיד הקונטיינר — להחליף את אישורי ההפעלה של תפקיד IAM ולבדוק את CloudTrail.

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

Abstract technical illustration on a dark navy field: three stacked horizontal layers. The top layer is a loose cluster of small abstract agent glyphs. Thin filaments run down from them into the middle layer, a clearly bounded cyan-outlined slab containing three small icons — two overlapping identity discs, a rectangular socket representing a tool registration, and a padlock on a folded document representing a policy. Every filament passes through those three icons. A single thick bundle leaves the middle slab and fans out across the bottom layer, a wide plain of large rectangular blocks. On the right edge of the middle slab, a short section of its outline is drawn as a dashed amber line, marking a boundary that is not intact. No text, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

CVE-2026-103956 נרשם כפגיעות, לא כתקרית: נמצא, לא בהכרח נוצל, INFRA ו-CRED, GLOBAL, חומרה גבוהה, ודאות גבוהה. ערכו במערך הרשומות הוא בהיותו מקרה גבול עבור כל הקטגוריה של מישורי בקרה של סוכנים. תפקיד Loom הוא להחזיק את הזהויות, את רישומי שרתי הכלים יחד עם אישורי האינטגרציה שלהם, ואת מדיניות IAM שקובעות במה סוכנים רשאים לגעת — השכבה שמחברת פלטפורמת סוכנים לחשבון הענן שבו היא מתקיימת. בדיקה חסרה בשכבה הזו לא מחלישה סוכן; היא מעבירה את כל הנכסים. רשומה אחות בארכיון, חשיפת AgentCorruption מ-8 באוקטובר 2026 נגד Amazon Bedrock AgentCore, מתארת את אותה שכבה שאליה מגיעים בדרך אחרת — שרשרת SSRF מסוכן אחד שחשוף לציבור.

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

זו רשומה אחת, שנחקרה ודווחה על ידי אחרים ומצוטטת כאן על שמם. השכבה של Loom עצמה — זהויות, רישומי שרתי כלים ומדיניות ה-IAM שקובעות מה סוכנים רשאים לגעת בו — היא השכבה שאליה הרשומות האחיות בארכיון תקריות ה-AI מגיעות גם, וכל אחת מהרשומות הללו נושאת מקורות משלה, חומרה, דרגת ביטחון ודגל מחלוקת.