שרת ה-FTP שמשולב ברכיב התקשורת Nucleus של Siemens לא בודק את אורך שם המשתמש שנשלח אליו, ומי שמשתמש בזה יכול להשבית את המכשיר או להריץ עליו קוד. הציון הוא 9.8 מתוך 10, ולא ידוע על ניצול בשטח. רשימת הציוד שנוגע בזה ארוכה במיוחד: בקרי בקרת מבנים מסדרות APOGEE, Desigo ו-TALON TC, לצד Nucleus NET ו-Nucleus ReadyStart עצמם.
מה החולשה?
בפרוטוקול FTP, אחד הצעדים הראשונים בכל חיבור הוא הפקודה USER, שבה הצד המתחבר מוסר את שם המשתמש שלו. זה קורה לפני שהוא הזדהה בסיסמה, כלומר בשלב שבו השרת עוד לא יודע מי פנה אליו בכלל.
השרת מעתיק את השם הזה אל אזור בזיכרון בגודל קבוע מראש, בלי לבדוק קודם כמה ארוך מה שהגיע. שם ארוך מדי לא נחתך אלא ממשיך להיכתב אל מעבר לאזור שהוקצה לו, ודורס את מה שיושב שם. האזור המדובר הוא המחסנית, אותו חלק בזיכרון שמנהל בין השאר את סדר הפעולות של התוכנה, ולכן דריסה שם לא רק מקלקלת נתונים אלא יכולה לשנות את מה שהתוכנה תעשה אחר כך. למצב הזה קוראים stack based buffer overflow, גלישה מעבר לגבולות אזור זיכרון על המחסנית.
הרשומה מונה שתי תוצאות אפשריות: השבתה של המכשיר, או הרצת קוד עליו. הבאג מסומן בה כ-CWE-170, סיום לא תקין של מחרוזת, כלומר המצב שבו הטקסט שהועבר אינו נגמר במקום שבו התוכנה מצפה שהוא ייגמר, והיא ממשיכה לקרוא ולכתוב מעבר לשם.
הווקטור מסמן שאין צורך בהזדהות, אין צורך בהרשאה ואין צורך בפעולה של משתמש. מי שיכול לפתוח חיבור אל שרת ה-FTP של המכשיר יכול לנסות, ופקודת USER נמצאת לפני כל בדיקה שהייתה עוצרת אותו.
מי מושפע?
Siemens מונה ברשומה כמה קבוצות, וההבדל ביניהן חשוב. בבקרים מסדרת APOGEE PXC Compact ו-PXC Modular, מהדורת BACnet מתוקנת ב-3.5.4 ומהדורת P2 Ethernet ב-2.8.19. בסדרת TALON TC Compact ו-TC Modular במהדורת BACnet היעד הוא 3.5.4. בסדרת Desigo PXC, החולשה נוגעת לגרסאות מ-2.3 ואילך והיא נסגרת ב-6.30.016. ב-Nucleus ReadyStart V3 היעד הוא 2017.02.4. עבור Nucleus NET ועבור קוד המקור של Nucleus, הרשומה מסמנת את כל הגרסאות כמושפעות, כלומר שם אין מספר גרסה שאתם בוחרים בעצמכם והתיקון מגיע דרך יצרן המכשיר שהטמיע את הרכיב.
מה שמאחד את הרשימה הוא שמדובר בבקרים שמפעילים מערכות של מבנים, למשל מיזוג, תאורה ובקרת גישה, ולא בציוד שנמצא בבית או במשרד של אדם פרטי. בישראל בקרים כאלה מותקנים בבנייני משרדים, בבתי חולים ובמרכזים מסחריים, ולכן הקהל שצריך לעשות כאן משהו הוא מי שאחראי על מערכות הבקרה של מבנה, ולא מי שעובד בתוכו.
האם מנוצלת בפועל?
לא ידוע על ניצול. בחמש השנים שעברו מאז הפרסום החולשה לא נכנסה לקטלוג ה-KEV, הרשימה שמנהלת סוכנות הסייבר האמריקאית CISA לחולשות שיש עדות לשימוש בהן בשטח.
שווה לשים לב לתאריכים כאן, כי הם מספרים משהו על אופי הציוד: הרשומה פורסמה בנובמבר 2021 והיא עודכנה שוב ביוני 2026. בקרי מבנים נשארים מותקנים שנים רבות, ולכן חולשה מ-2021 בציוד כזה אינה בהכרח היסטוריה.
מה עושים?
1. ערכו רשימה של הבקרים שמותקנים אצלכם ושל הגרסה של כל אחד, כולל אם מדובר במהדורת BACnet או במהדורת P2 Ethernet. ההבדל הזה קובע לאיזה מספר אתם צריכים להגיע.
2. שדרגו לפי הסדרה: 3.5.4 ב-APOGEE PXC ו-TALON TC במהדורת BACnet, 2.8.19 ב-APOGEE PXC במהדורת P2 Ethernet, 6.30.016 ב-Desigo PXC, ו-2017.02.4 ב-Nucleus ReadyStart V3.
3. לבקרים שאין להם גרסה מתוקנת, ולכל מכשיר אחר שמריץ Nucleus NET, בדקו אצל יצרן המכשיר אם שוחררה גרסת קושחה שכוללת את התיקון.
4. במקביל, וגם אחרי השדרוג, בדקו מי יכול להגיע אל שרת ה-FTP של הבקרים. החולשה נמצאת בשירות FTP, ולכן היכולת לפתוח אליו חיבור מהרשת היא התנאי היחיד לניסיון ניצול. רשת בקרה שאינה נגישה מהאינטרנט ואינה נגישה מרשת המשרד הכללית מצמצמת את מספר מי שיכול בכלל לנסות.
5. הפרטים לכל דגם מרוכזים בהודעות של Siemens: ssa-044112 ו-ssa-114589.