תו ריק עוקף את בדיקת הנתיב, וקובץ אחד מכניס את קוד התוקף לכל תהליך חדש: החולשה ב-FortiMail בציון 9.8
ברשימת הסימנים שחברת התגובה לאירועים Truesec פרסמה לשרתי FortiMail שנפרצו יש קובץ שאומר את כל הסיפור: /data/etc/ld.so.preload. החולשה עצמה, CVE-2026-104286 בציון 9.8, מאפשרת לתוקף שאינו מזוהה לכתוב קובץ על שרת הדואר. הקובץ הזה מסביר איך כתיבה הופכת להרצת קוד.
סקירה כללית
FortiMail הוא שער הדואר של Fortinet, המכשיר שיושב לפני תיבות הדואר של הארגון. החולשה יושבת ברכיב IBE (Identity-Based Encryption), שמאפשר לנמען חיצוני לקרוא הודעה מוצפנת דרך ממשק web. כדי שזה יעבוד הרכיב חייב להיות פתוח למי שאינו מזוהה, וזה מה שהופך אותו למטרה.
הרכיב מקבל שם של קובץ, ואמור להרכיב ממנו נתיב בתוך תיקייה מוגדרת. תוקף שמשרבב רצף שמשמעותו "עלה תיקייה למעלה" בוחר לאן הקובץ ייכתב. לסוג החולשה הזה קוראים Path Traversal.
מזהה: CVE-2026-104286
סוג: כתיבת קבצים דרך Path Traversal בשילוב תו ריק (CWE-22 ו-CWE-158)
מוצר: Fortinet FortiMail, רכיב ה-IBE
גרסאות מושפעות: 8.0.0 עד 8.0.1, 7.6.0 עד 7.6.6, 7.4.0 עד 7.4.8, 7.2.0 עד 7.2.9
גרסה מתוקנת: 8.0.2, 7.6.7 ו-7.4.9 ומעלה. לקו 7.2 אין תיקון, והמעבר הוא לקו 7.4
ניצול בפועל: כן, בקטלוג ה-KEV של CISA מ-1 באוקטובר 2026
ציר זמן
1 באוקטובר 2026: Fortinet מפרסמת את הודעת האבטחה FG-IR-26-175 ומאשרת שהחולשה מנוצלת בשטח. לפי הדיווחים אז לא הייתה עדיין גרסה מתוקנת, וההמלצה הייתה להשבית את IBE.
1 באוקטובר 2026: הרשומה מתפרסמת ב-NVD, ובאותו יום CISA מכניסה אותה לקטלוג ה-KEV.
4 באוקטובר 2026: המועד שקבעה CISA לגופים הפדרליים, ולצידו דרישה לבדיקה פורנזית ולא רק לעדכון.
בהמשך: Fortinet פרסמה גרסאות מתוקנות.
איך הניצול עובד
סינון של נתיבים הוא בדיקת מחרוזת, והיא מניחה שמה שהיא רואה הוא מה שייפתח בסוף. כאן ההנחה נשברת. בשפת C תו בעל הערך אפס מסמן את סוף המחרוזת, וכל פונקציה שפותחת קובץ עוצרת שם. הבדיקה רואה את המחרוזת המלאה ומאשרת, והספרייה שפותחת את הקובץ רואה רק את מה שלפני האפס. התוקף מקבל אישור על נתיב אחד וכתיבה לנתיב אחר. לטריק הזה קוראים poison null byte, והוא מוכר מאז שנות התשעים. לכן יש כאן שני CWE: CWE-22 על היציאה מהתיקייה, ו-CWE-158 על התו שהשתיק את הבדיקה.
בין הסימנים שפרסמה Truesec מופיעים /data/lib/liblog.so ו-/data/etc/ld.so.preload. השני הוא המעניין. בלינוקס הקובץ הזה מחזיק רשימת ספריות שהטוען הדינמי מכניס לכל תהליך חדש, לפני כל ספרייה אחרת. מי שכותב את שני הקבצים אינו צריך באג נוסף, רק לחכות שתהליך כלשהו יעלה.
ניתוח ציון ה-CVSS
ציון CVSS: 9.8
התקיפה מגיעה ברשת, בלי שם משתמש ובלי שאיש בצד השני יעשה דבר, והיא פוגעת בסודיות, בשלמות ובזמינות. הציון הזה הוא של Fortinet עצמה, ולצידו אין ב-NVD ציון עצמאי של NIST.
איפה למצוא Proof of Concept (PoC)
לפי מה שפורסם אין PoC פומבי. מה שכן קיים, ושימושי יותר לבדיקת שרת, הוא הניתוח של Truesec עם רשימת הקבצים וכתובות ה-IP שנצפו, ולצידו השאלות והתשובות של watchtowr.
מי שמריץ FortiMail בגרסה שבטווח, השאלה אינה רק אם לעדכן אלא אם כבר נכתב שם קובץ, ושני הנתיבים שלמעלה הם המקום להתחיל.
תגובות