ב-2 ביוני 2022 פרסמה Atlassian הודעת אבטחה על חולשה בשרתי Confluence שמאפשרת לתוקף לא מזוהה להריץ קוד על השרת. באותו יום עצמו הכניסה CISA את החולשה לרשימת החולשות המנוצלות שלה, כלומר הניצול הקדים את התיקון. הדירוג הוא 9.8 מתוך 10, והחולשה נוגעת להתקנות Confluence Server ו-Confluence Data Center שארגונים מריצים על השרתים שלהם.
מה החולשה?
בשרת יש רכיב שמקבל טקסט מתוך הפנייה ולא מתייחס אליו כטקסט. במקום להציג את מה שנשלח, הוא מחשב אותו: הטקסט נבלע בתוך מנגנון שמעריך ביטויים, מחשב את ערכם ומחזיר תוצאה. למנגנון הזה קוראים OGNL, שפת ביטויים שמערכות הבנויות על Java משתמשות בה כדי להריץ חישובים קטנים בזמן אמת.
תוקף שמכיר את הדקדוק הזה אינו שולח חישוב. הוא שולח ביטוי שפונה למערכת ההפעלה, והשרת מחשב גם אותו ומריץ את מה שהתבקש. לטכניקה הזאת קוראים OGNL injection, הזרקה לשפת ביטויים.
הכול מתרחש בפנייה אחת, בלי חשבון ובלי סיסמה. זה מה שהופך את החולשה לנוחה לכלי תקיפה אוטומטיים: אין שלב שדורש היכרות מוקדמת עם הארגון המותקף.
מי מושפע?
הרשימה כאן ארוכה מהרגיל, מפני שהתיקון יצא בשבע סדרות במקביל. מושפעות גרסאות Confluence Server ו-Confluence Data Center מ-1.3 ועד 7.4.17, מ-7.13.0 עד 7.13.7, מ-7.14.0 עד 7.14.3, מ-7.15.0 עד 7.15.2, מ-7.16.0 עד 7.16.4, מ-7.17.0 עד 7.17.4, וכן גרסה 7.18.0 שתוקנה ב-7.18.1. בכל טווח, הגרסה שבסופו היא כבר המתוקנת.
ריבוי הטווחים הוא עצמו חלק מהבעיה. מנהל מערכת שמריץ 7.14.1 עלול לסרוק את הרשימה, לראות מספרים גבוהים משלו, ולהסיק שהוא מחוץ לסיפור. הדרך הנכונה היא למצוא קודם את הסדרה שבה אתם נמצאים, ורק אז את מספר התיקון שבתוכה.
בישראל זה נוגע לארגונים שמריצים Confluence בעצמם ולא למשתמש הפרטי.
האם מנוצלת בפועל?
כן, ומן ההתחלה. התאריך שבו נכנסה החולשה לקטלוג ה-KEV של סוכנות הסייבר האמריקאית CISA, רשימת החולשות שידוע שתוקפים מנצלים בשטח, הוא 2 ביוני 2022, אותו יום שבו פורסמה הודעת היצרן. ל-NVD היא הגיעה למחרת, ב-3 ביוני.
מאז עברו יותר מארבע שנים, וזה לא לטובת מי שלא עדכן. שרת Confluence ותיק שעוד רץ בארגון, בוודאי אם הוא נגיש מהאינטרנט, הוא מהמקומות הראשונים שכדאי לבדוק.
מה עושים?
מצאו את הסדרה שבה אתם נמצאים ועדכנו לגרסת התיקון שלה: 7.4.17, 7.13.7, 7.14.3, 7.15.2, 7.16.4, 7.17.4, ולמי שנמצא על 7.18.0, הגרסה 7.18.1. הפרטים המלאים מופיעים בהודעת האבטחה של Atlassian מ-2 ביוני 2022 ובכרטיס המעקב CONFSERVER-79016.
מי שאינו יכול לעדכן כרגע צריך להוציא את השרת מהאינטרנט הפתוח ולהשאיר אותו נגיש מתוך הרשת בלבד. זה אינו תיקון, אבל הוא מוציא את השרת מטווח הסריקות.
ואם השרת היה חשוף לאינטרנט בגרסה מושפעת, העדכון לבדו אינו סוף הטיפול. שרת שנפרץ נשאר פרוץ גם אחרי שנסגרת הדלת שדרכה נכנסו: עברו על חשבונות המשתמשים, על קבצים שנוספו לתיקיות השרת ועל רשומות הפניות אליו, וחפשו את מה שאינכם יכולים להסביר. חולשה בגיל הזה מצדיקה את הבדיקה הזאת גם אם שום דבר לא נראה חריג.