קובץ אחד תחת תיקיית הממשק של רכיב ה-scheduler ב-SAP NetWeaver Application Server Java 7.50 מקבל שם נתיב בשורת הכתובת ומחזיר את הקובץ שביקשו. הוא אינו בודק את הנתיב, ולכן צעדי .. בתוכו מוציאים אותו מתיקיית האתר אל שאר מערכת הקבצים. אין צורך בחשבון, הציון הוא 7.5 מתוך 10, והתיקון קיים בהערת האבטחה 2486657 של SAP מאז 2017.
מה החולשה?
שרת שמגיש קובץ שהתבקש צריך להפוך את השם שקיבל לנתיב על הדיסק. הדרך הפשוטה לעשות זאת היא להדביק את השם שהגיע בבקשה בהמשך לתיקיית הבסיס של האתר. הבעיה היא שהתו .. אינו שם של תיקייה אלא הוראה, ופירושה לעלות תיקייה אחת למעלה. אם השרת מדביק קודם ובודק אחר כך, או לא בודק כלל, נתיב שמכיל מספיק צעדי .. יוצא מתיקיית האתר והולך לאן שרוצים. לטכניקה הזאת קוראים Path Traversal.
הרשומה מצביעה על המקום המדויק: קובץ בשם UIUtilJavaScriptJS, שיושב תחת scheduler/ui/js בעץ הממשק של הרכיב. הבקשה שמפעילה את החולשה היא בקשה רגילה עם הנתיב בשורת השאילתה, ולכן היא אינה נראית חריגה בלוג התעבורה.
מה שהחולשה נותנת הוא קריאה, ורק קריאה. הווקטור מסמן פגיעה גבוהה בסודיות ואפס פגיעה בשלמות ובזמינות, כלומר אי אפשר לשנות דרכה קבצים ואי אפשר להפיל את השרת. בלי הזדהות ובלי מעורבות של אף אחד בצד הנתקף, מהרשת.
קריאה בלבד נשמעת כמו החצי הפחות חמור, וכאן כדאי לעצור על מה שהיא בכל זאת שווה על שרת יישומים. הקבצים שמעניינים תוקף על מכונה כזאת אינם המסמכים אלא קובצי ההגדרות, ואלה מכילים לא פעם פרטי אימות למסדי נתונים ולשירותים אחרים. כך חולשת קריאה הופכת לדריסת רגל: לא היא שמריצה את הקוד, אלא מה שנקרא דרכה.
מי מושפע?
הרשומה נוקבת ב-SAP NetWeaver Application Server Java בגרסה 7.50.
NetWeaver היא שכבת התשתית שמערכות SAP רצות עליה, ובישראל היא יושבת בארגונים גדולים ובגופים ציבוריים שמנהלים עליה תהליכים מרכזיים. אין כאן משתמש פרטי.
המאפיין שהופך חולשה בת שמונה שנים לרלוונטית הוא אורך החיים של המערכות האלה. התקנת NetWeaver אינה נבנית מחדש כל כמה שנים, היא מתוחזקת, ולכן השאלה המעשית אינה אם יש לכם 7.50 אלא אם הערת האבטחה מ-2017 הוחלה על ההתקנה הזאת מאז. בארגון שעבר מאז מעבר ספק או שדרוג חלקי, התשובה לא תמיד מתועדת.
האם מנוצלת בפועל?
כן. הרשומה קובעת שהחולשה נוצלה בשטח באוגוסט 2017, וב-19 במרץ 2025 היא נוספה לקטלוג ה-KEV של סוכנות הסייבר האמריקאית CISA, רשימת החולשות שידוע שתוקפים משתמשים בהן בפועל. המועד שנקבע לגופים הפדרליים האמריקאיים לסיום התיקון היה 9 באפריל 2025.
הפער בין שני התאריכים הוא שמונה שנים, וכדאי לקרוא אותו בזהירות: כניסה מאוחרת לקטלוג מתעדת שהחולשה שימשה תוקפים, והיא אינה בהכרח הודעה על גל ניצול חדש. מה שהיא כן אומרת הוא שהתיקון לא הגיע לכל המערכות, אחרת לא היה טעם לרשום אותה.
(ההפניה הטכנית היחידה שהרשומה מצרפת מלבד NVD ו-CISA היא עותק משומר בארכיון של פוסט מ-2017. המקור עצמו ירד מהאוויר מאז.)
מה עושים?
1. החילו את הערת האבטחה 2486657 של SAP, ואם אינכם יודעים אם היא הוחלה, בדקו ואל תניחו. זה תיקון משנת 2017 שנמצא בערוצי העדכון הרגילים של SAP, והחסם הרגיל אינו זמינות התיקון אלא תיעוד חסר של מה הותקן.
2. ספרו אילו מערכות NetWeaver AS Java 7.50 יש אצלכם. בארגון גדול הרשימה כמעט תמיד ארוכה מהזכרון, ומערכות בדיקה ומערכות שנשארו מפרויקט שהסתיים הן בדיוק אלה שאיש אינו מעדכן.
3. בדקו מי יכול להגיע אליהן מבחוץ. הניצול הוא בקשה אחת מהרשת בלי חשבון, ולכן חשיפה לאינטרנט היא כל ההבדל. שרת יישומים פנימי שאינו אמור להיות נגיש מבחוץ לא צריך להיות נגיש מבחוץ, וזה נכון גם אחרי שהתיקון הותקן.
4. אם מערכת הייתה חשופה ולא מעודכנת, הניחו שקבצים נקראו. החליפו את פרטי האימות שמופיעים בקובצי ההגדרות שלה, כי התיקון סוגר את הקריאה הבאה ולא את מה שנקרא קודם.
5. חפשו בלוגי השרת בקשות אל scheduler/ui/js שמכילות צעדי .. בשורת השאילתה. הבקשה נראית תקינה מבחינת הפרוטוקול, ולכן מה שמסמן אותה הוא הנתיב עצמו. את הרשומה כפי שהיא מופיעה אצל CISA אפשר לראות בערך שלה בקטלוג.