AnyDesk היא תוכנה לשליטה מרחוק על מחשב, מהסוג שאיש תמיכה מפעיל כדי להתחבר למכונה של מישהו אחר. בגרסאות שלה ללינוקס ול-FreeBSD, לפני גרסה 5.5.3, התגלתה חולשה שקיבלה 9.8 מתוך 10. תוקף יכול היה לנצל אותה דרך הרשת, בלי שם משתמש ובלי סיסמה, כדי להריץ קוד משלו על המחשב.

מה החולשה?

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

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

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

מי מושפע?

הרשומה מתייחסת לגרסאות AnyDesk שלפני 5.5.3, ומציינת שתי מערכות הפעלה: לינוקס ו-FreeBSD. Windows ו-macOS אינם מופיעים בה, ולכן ההתקנה הנפוצה בבית ובמשרד אינה הנושא של הדף הזה.

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

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

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

מה שכן קיים הוא חומר ניצול פומבי. ב-Packet Storm פורסמו שתי רשומות עליה, האחת מתארת כתיבה לזיכרון דרך מחרוזת הפורמט בממשק הגרפי, והשנייה מתוארת כהרצת קוד מרחוק ב-AnyDesk 5.5.2. פירוט נוסף של המחקר פורסם באתר devel0pment.de. חולשה עם חומר זמין כזה היא לא איום חדש, אבל היא בדיוק מה שסורק אוטומטי מחפש במכונה שנשכחה.

מה עושים?

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

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

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