ב-OctoberCMS, מערכת לניהול תוכן שבנויה על Laravel, התגלתה דרך להיכנס לחשבון של מישהו אחר דרך מנגנון איפוס הסיסמה. התוקף מבקש איפוס סיסמה לחשבון היעד, ואחר כך שולח בקשה בנויה במיוחד שמכניסה אותו לאותו חשבון, בלי להחזיק בסיסמה ובלי הרשאה מוקדמת כלשהי. הציון 8.2 מתוך 10, והחולשה רשומה בקטלוג החולשות שתוקפים משתמשים בהן בפועל.
מה החולשה?
מנגנון איפוס סיסמה הוא, מבחינת האתר, דלת צדדית מתוכננת. מי ששכח את הסיסמה מבקש איפוס, המערכת שולחת קישור חד-פעמי לכתובת הדואר שרשומה בחשבון, והקישור הזה הוא כל ההוכחה שמי שהגיע לשלב הבא הוא אכן בעל החשבון. כל הביטחון של המנגנון תלוי בדבר אחד: שרק מי שקורא את הדואר הזה יכול להמשיך.
ב-OctoberCMS אפשר היה לדלג על השלב הזה. מי שביקש איפוס לחשבון של מישהו אחר, ואז שלח בקשה בנויה במיוחד, התקבל לחשבון בלי להוכיח שהדואר הוא שלו. הרשומה אינה מפרטת מה בדיוק מכילה אותה בקשה, ואת הפירוט פרסם הפרויקט בהודעת האבטחה שלו. לקטגוריה שבה מנגנון ההזדהות מקבל מישהו שלא הוכיח את זהותו קוראים CWE-287, אימות לקוי.
כדאי לקרוא את הציון 8.2 ולא רק להסתכל עליו. לפי הווקטור, הניצול מתבצע דרך הרשת, אינו דורש שום הרשאה מוקדמת, אינו דורש שהקורבן יעשה משהו, ומוגדר כבעל מורכבות נמוכה. כלומר התוקף צריך רק להגיע לאתר. מה שמחזיק את הציון מתחת ל-9 הוא דווקא צד הנזק: הסודיות מסומנת כגבוהה, התוקף רואה כל מה שהחשבון רואה, אבל השלמות מסומנת כנמוכה, הזמינות כלא מושפעת, וההשפעה נעצרת בגבולות המערכת עצמה.
מדובר בכניסה לחשבון, לא בהשתלטות על השרת.
מי מושפע?
החולשה יושבת בחבילת october/system, הליבה של המערכת. לפי הרשומה מושפעות הגרסאות מ-1.1.1 ועד 1.1.5, כולל הראשונה ולא כולל האחרונה, וגם גרסה 1.0.471 בקו הקודם. התיקון נכנס בגרסה 1.1.5 ובמקביל ב-Build 472.
OctoberCMS רחוקה מלהיות נפוצה כמו וורדפרס, ולכן מספר האתרים הישראליים שמריצים אותה קטן. מי שכן מריץ אותה פוגש כאן תמונה לא נוחה. התאריכים ברשומה מראים שהחולשה פורסמה באוגוסט 2021 ושהתיקון היה זמין באותו מועד, כך שאתר שמריץ היום גרסה מושפעת מריץ אותה חמש שנים אחרי שהתיקון יצא.
רוב ההתקנות של מערכת ניהול תוכן אינן מתוחזקות בידי מי שבנה אותן. אם האתר שלכם הוקם פעם בידי ספק חיצוני ומאז לא נגעו בו, זו בדיוק ההתקנה שתהיה בטווח.
האם מנוצלת בפועל?
כן. החולשה רשומה בקטלוג ה-KEV של CISA, סוכנות הסייבר האמריקאית, שהוא רשימת החולשות שידוע שתוקפים משתמשים בהן בתקיפות אמיתיות. היא נוספה לקטלוג ב-18 בינואר 2022.
הפרט שמוסיף כאן הקשר הוא התאריך השני. CISA קבעה לגופי הממשל האמריקאי לסגור את החולשה עד ה-1 בפברואר 2022, שבועיים בלבד אחרי שנכנסה לרשימה. חלון כזה אינו מה שנותנים לחולשה תיאורטית.
מאז עברו ארבע שנים, ורשומה בקטלוג אינה נמחקת. מי שמריץ היום גרסה מושפעת עושה זאת בתוך תמונה שבה הניצול מתועד מזמן.
מה עושים?
עדכנו את חבילת october/system לגרסה 1.1.5 ומעלה. מי שעובד לפי מספרי Build, הגרסה המתוקנת היא Build 472. אלה שני הסימונים של אותו תיקון עצמו, וכך הם מופיעים ברשומה.
לפני העדכון בדקו באיזו גרסה אתם נמצאים והשוו אותה לטווח המדויק שבמידע הטכני למטה: 1.1.1 עד 1.1.5, וגם 1.0.471. כל מה שנופל שם דורש עדכון.
אחרי העדכון עברו על החשבונות עצמם. החולשה מאפשרת כניסה לחשבון קיים, כך שאתר שהיה חשוף הוא אתר שאפשר שמישהו כבר נכנס אליו, והעדכון לבדו אינו מוציא אותו משם. חפשו חשבונות מנהל שלא אתם יצרתם, בדקו שינויים בהרשאות של חשבונות קיימים, והחליפו את הסיסמאות של כולם.
את מה שהתיקון שינה בקוד אפשר לראות ישירות. הודעת האבטחה של הפרויקט מפרטת את החולשה, ושני ה-commit-ים שסוגרים אותה מקושרים ברשומה: הודעת האבטחה של OctoberCMS