בממשק הניהול של נתבי LB-LINK יש טופס שמטפל בהגבלת מכשירים ברשת, בכתובת /goform/set_LimitClient_cfg. הוא מקבל שלושה פרטים, כתובת MAC ושתי שעות, ומעביר אותם אל שורת הפקודה של הנתב בלי לבדוק מה נשלח. מי שכותב שם פקודה במקום כתובת MAC מריץ אותה על הנתב, בלי שם משתמש ובלי סיסמה, והחולשה קיבלה על כך 9.8 מתוך 10.

מה החולשה?

כל שינוי הגדרה בממשק של נתב הוא בפועל שליחת טופס אל כתובת פנימית במכשיר. הכתובת שמדובר בה כאן היא /goform/set_LimitClient_cfg, ושמה, יחד עם שלושת הפרמטרים שהיא מקבלת, mac, time1 ו-time2, מצביע על הפונקציה שמגבילה את זמן החיבור של מכשיר מסוים ברשת.

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

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

מי מושפע?

ארבעה דגמים מופיעים ברשומה, כל אחד עם גרסת הקושחה שלו: BL-AC1900 בגרסת קושחה 1.0.1 (מהדורת חומרה 2.0), BL-WR9000 בגרסה 2.4.9, BL-X26 בגרסה 1.2.5 ו-BL-LTE300 בגרסה 1.0.8.

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

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

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

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

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

לקורא שמחזיק באחד מארבעת הדגמים ההבדל הזה לא משנה.

מה עושים?

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

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

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

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