WebFig הוא ממשק הניהול של נתבי MikroTik שנפתח בדפדפן. החולשה הזאת מאפשרת למי שמגיע אליו, בלי שם משתמש ובלי סיסמה, לגרום לו להחזיר קבצים ששמורים ל-root, חשבון המערכת בעל ההרשאות הגבוהות ביותר במכשיר. בין הקבצים האלה יש גם את מאגרי ההגדרות שבתוכם שמורים פרטי אימות. הציון שנקבע לה הוא 8.7 מתוך 10, והיא תוקנה בגרסאות 6.49.21 ו-7.23.4 (long-term) ו-7.24.2 (stable).

מה החולשה?

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

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

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

מי מושפע?

נתבי MikroTik וציוד אחר שמריץ RouterOS בגרסה שקודמת ל-6.49.21, ל-7.23.4 או ל-7.24.2, בכל מקום שבו ממשק WebFig נגיש. שימו לב לשתי דרכים שונות להגיע אליו: מהאינטרנט, אם ניהול מרחוק פתוח, ומתוך הרשת המקומית עצמה. הדרך השנייה נשכחת יותר, והיא רלוונטית לכל מי שיש לו רשת אורחים, מכשיר חכם או מחשב של עובד שאפשר להשתלט עליו ולפנות ממנו אל הנתב.

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

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

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

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

מה עושים?

עדכנו את הנתב. בממשק WebFig או ב-WinBox, בתפריט System ואז Packages, לחצו Check For Updates ואז Download&Install. הגרסה שאליה אתם צריכים להגיע היא 6.49.21 או 7.23.4 אם אתם בערוץ ה-long-term, ו-7.24.2 אם אתם בערוץ ה-stable. הנתב יאתחל את עצמו בסוף התהליך.

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

סגרו את הממשק כלפי חוץ. בתפריט IP ואז Services, השורות www ו-www-ssl הן אלה שמפעילות את WebFig; מלאו בעמודת Available From את הכתובות שמורשות להתחבר, או השביתו את השירות אם אתם עובדים ממילא רק דרך WinBox.

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