ברכיב שמפרסר הודעות בקרה של פרוטוקול L2TP בנתב D-Link DIR-822A נמצאה חולשה שמאפשרת לכתוב נתונים מעבר לאזור הזיכרון שהוקצה להם. הציון הוא 8.6 בסולם CVSS 4.0, קוד הניצול פורסם בפומבי, וברשומה אין מספר גרסה שסוגר את החולשה. לפי הרשומה נדרשות הרשאות משתמש בסיסיות כדי להגיע אליה, וזה הפרט שקובע כמה זה דחוף אצלכם.
מה החולשה?
L2TP הוא פרוטוקול שמקים מנהרה בין שני קצוות ברשת, והשימוש המוכר שלו הוא חיבורי VPN. לפני שמנהרה כזאת קמה, שני הצדדים מחליפים הודעות בקרה שבהן הם מספרים זה לזה פרטים על עצמם. כל פרט נשלח כשדה נפרד, ואחד השדות נושא את שם המחשב שפותח את המנהרה.
הרכיב בנתב שמפרסר את ההודעות האלה, ובתוכו הפונקציה tunnel_set_params, לוקח את הנתון שהגיע ומעתיק אותו לאזור זיכרון בגודל קבוע. לפי הרשומה ההעתקה הזאת יוצאת מגבולות האזור. כלומר הנתון שהגיע מבחוץ יכול להיות גדול ממה שהוכן בשבילו, וההעתקה ממשיכה וכותבת על מה שיושב מעבר לגבול.
ומה שיושב שם אינו בהכרח נתונים. באזור הזה נשמרות גם כתובות שמכוונות את ריצת הקוד, ולכן מי שמצליח לשלוט בתוכן שנדרס שולט גם במה שהנתב יעשה בשלב הבא. לסוג הזה של באג קוראים כתיבה מחוץ לגבולות אזור הזיכרון.
הרשומה גם אומרת במפורש שקוד הניצול פורסם ופתוח לשימוש. מי שירצה לנסות אינו צריך למצוא את הדרך בעצמו.
מי מושפע?
הרשומה נוקבת בדגם אחד ובגרסת חומרה אחת: DIR-822A של D-Link בגרסה A_101. אין בה רשימת דגמים נוספים ואין בה טווח גרסאות תוכנה.
הדגם הזה הוא נתב אלחוטי זול, מהסוג שנקנה לבית או למשרד קטן ומחזיק שם שנים. בישראל D-Link נמכרת בשוק הקמעונאי הרחב, כך שמדובר בציוד שיכול לעמוד באותה מידה בסלון ובחדר תקשורת של עסק קטן. שם הדגם וגרסת החומרה מופיעים במסך הפתיחה של ממשק הניהול, וגם מודפסים על גוף המכשיר עצמו.
פרט אחד מצמצם כאן את התמונה ופרט אחר מרחיב אותה. מצמצם: לפי הרשומה הגישה אל החולשה דורשת הרשאות משתמש בסיסיות ולא פנייה אנונימית לגמרי. מרחיב: מי שנשאר עם סיסמת הניהול שהגיעה מהקופסה מחזיק בפועל הרשאות כאלה בכיס של כל מי שיודע מה ברירת המחדל של הדגם.
האם מנוצלת בפועל?
החולשה אינה מופיעה בקטלוג ה-KEV של CISA, סוכנות הסייבר האמריקאית, הקטלוג שמרכז חולשות שיש ידיעה על ניצול שלהן בשטח.
אבל שני דברים כאן אומרים שלא כדאי להירגע מזה. הראשון, הרשומה קובעת שקוד הניצול פורסם וזמין לשימוש. השני, הפרסום של החוקר עצמו, שמצביע על השדה שנושא את שם המחשב בהודעת ה-L2TP, פתוח לקריאה. המחסום שנשאר הוא הרצון לנסות, לא הידע.
מה שכן, אין כאן דיווח על קמפיין. מי שקורא את זה מפעיל נתב שטרם נראה תחת התקפה מתועדת, וגם אינו מתוקן.
מה עושים?
1. ודאו קודם שזה בכלל הדגם והגרסה שברשומה, DIR-822A בגרסת חומרה A_101. אם הנתב שלכם אחר, העמוד הזה אינו עליכם.
2. החליפו את סיסמת הניהול של הנתב אם היא עדיין זו שהגיעה איתו. הרשומה קובעת שנדרשות הרשאות משתמש בסיסיות, וסיסמת ברירת מחדל היא הדרך הזולה ביותר להשיג אותן.
3. אם יש בממשק הניהול הגדרה שמכבה את שירות ה-L2TP ואינכם משתמשים בו, כבו אותה. הרכיב שמפרסר את הודעות הבקרה של מנהרה שאינכם מקימים אינו צריך להיות זמין.
4. סגרו את ממשק הניהול מגישה דרך האינטרנט והשאירו אותו נגיש רק מהרשת הפנימית. זה אינו מתקן את הבאג, וזה מקצר את רשימת מי שיכול לנסות אותו.
5. בדקו בממשק אם ממתין עדכון קושחה, ואמרו לעצמכם את זה בפה מלא: ברשומה אין גרסה שמתקנת ואין קישור להודעת יצרן, אלא פרסום של חוקר ורשומות במאגר VulDB. אם הדגם הזה מנהל את הרשת של עסק, זה השיקול שמצדיק לתכנן החלפה במקום להמתין.