שרת SSH שנבנה על Erlang/OTP קיבל ציון 10 מתוך 10, הציון הגבוה ביותר שיש. תוקף שאין לו שם משתמש, סיסמה או מפתח יכול לשלוח לשרת רצף הודעות ולהריץ עליו פקודות. מאז יוני 2025 החולשה רשומה כמנוצלת בפועל.

מה החולשה?

חיבור SSH בנוי משני שלבים. קודם הצדדים מחליפים הודעות שנועדו לזהות את הלקוח, ורק אחרי שהזיהוי הצליח הלקוח רשאי לבקש מהשרת לפתוח ערוץ ולהפעיל פקודות. שרת ה-SSH של Erlang/OTP לא שמר על הסדר הזה: הוא טיפל בהודעות שמתאימות לשלב השני גם כשהן הגיעו לפני שהלקוח הוכיח מי הוא. לסוג הזה של באג קוראים היעדר אימות בפעולה קריטית.

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

נקודה שקל לפספס: Erlang/OTP הוא אוסף ספריות, לא מוצר קצה. ארגונים רבים אינם מריצים אותו ביודעין אלא מקבלים אותו בתוך מוצר של מישהו אחר, ולכן השאלה הנכונה אינה האם התקנתי Erlang אלא מה מהמוצרים שלי בנוי עליו.

מי מושפע?

הרשומה מונה שתי קבוצות. הראשונה היא Erlang/OTP עצמו: כל גרסה מתחת ל-25.3.2.20, כל גרסה בין 26.0 ל-26.2.5.11, וכל גרסה בין 27.0 ל-27.3.3.

הקבוצה השנייה היא מוצרי Cisco שבנויים על הספרייה, וביניהם Network Services Orchestrator, ConfD Basic, Cloud Native Broadband Network Gateway, iNode Manager, Smart PHY, Ultra Packet Core ו-Ultra Services Platform. עבור ConfD Basic הרשומה מפרטת תיקונים בגרסאות 7.7.19.1, 8.1.16.2, 8.2.11.1, 8.3.8.1 ו-8.4.4.1, ועבור Network Services Orchestrator בגרסאות 5.7.19.1 ו-6.1.16.2.

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

האם מנוצלת בפועל?

כן. ב-9 ביוני 2025 הוסיפה CISA, סוכנות הסייבר האמריקאית, את החולשה ל-KEV, הקטלוג שלה לחולשות שידוע כי תוקפים משתמשים בהן בשטח. התאריך שנקבע שם לגופים הפדרליים לסיים את הטיפול הוא 30 ביוני 2025.

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

מה עושים?

עדכנו את Erlang/OTP לאחת מהגרסאות שכוללות את התיקון: 27.3.3 בענף 27, 26.2.5.11 בענף 26, או 25.3.2.20 בענף 25. אין צורך לקפוץ ענף מרכזי, התיקון קיים בשלושתם.

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

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

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