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

מה החולשה?

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

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

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

מי מושפע?

הרשומה מפרטת דגמים וקושחות מדויקים. בקושחה 19.1101: WE1326, WE357, WE5926, WE5926-WD, WE826-Q, WE826-T2, WE826-WD, WG108, WG3526, וכן CTN720-W1, LF-1541 ו-MT7620N. בנוסף, WE2426-C בקושחה 19.1112, WE5926-EC_QP בקושחה 20.0516, WF3526-P בקושחה 19.051, ו-WRC1 בקושחה 20.0622.

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

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

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

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

מה עושים?

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

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

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