במערכת האקולוגית של אבטחת הסייבר, המנטרה "כתוב מחדש ב-Rust" זוכה זה מכבר לשבחים כפתרון האולטימטיבי לפגיעות של פגיעה בזיכרון. עם זאת, החשיפה של CVE-2025-68260 בדצמבר 2025 ניפץ את אשליית חסינות זו. פגיעות זו מסמנת נקודת מפנה היסטורית: זוהי הפגיעות הראשונה שאושרה, בעלת חומרה גבוהה, המושרשת ברכיבי Rust של ליבת לינוקס.
עבור מהנדסי אבטחה קשוחים, מתחזקי קרנל ומומחי בדיקות חדירה, CVE-2025-68260 הוא יותר מסתם באג — הוא מקרה בוחן הממחיש את מגבלות הניתוח הסטטי. הוא חושף אמת קריטית: בודק השאלת חלודה לא יכול להציל אותך מטעויות לוגיות בתוך לא בטוח בלוקים.
ניתוח מקיף זה מנתח את המנגנונים הטכניים של הפגיעות, את כישלון מעטפות האבטחה, ואת האופן שבו פרדיגמות אבטחה מבוססות בינה מלאכותית מתפתחות כדי לתפוס את מה שהקומפילרים מפספסים.
האשליה התנפצה: ניתוח טכני של CVE-2025-68260
בניגוד לדעה הרווחת, CVE-2025-68260 לא התרחש ב-"Safe Rust". במקום זאת, הוא התגלה בגבול המסוכן בין Rust לבין גרעין ה-C הישן — באופן ספציפי בתוך לא בטוח חסימה בתת-מערכת של מנהל התקן רשת.
הפגיעות היא שימוש לאחר שחרור (UAF) מצב המופעל על ידי מצב מירוץ, ניתן להגיע אליו באמצעות קריאות מערכת ספציפיות במרחב המשתמש.
הגורם השורשי: אי-שינוי שבור בבלוקים לא בטוחים
כדי להשתלב בקרנל לינוקס, Rust משתמש ב-FFI (Foreign Function Interface) כדי לתקשר עם מבני נתונים ב-C. כדי להפוך את התהליך לארגונומי, מפתחים עוטפים את המצביעים הגולמיים הללו במבני Rust "בטוחים".
ב-CVE-2025-68260, הפגיעות נבעה מאי-התאמה בין מחזור החיים המשוער של מעטפת Rust לבין מחזור החיים בפועל של אובייקט הקרנל.
לוגיקה פגיעה קונספטואלית:
חלודה
// ייצוג מפושט של לוגיקת מנהל ההתקן הפגיע struct NetDeviceWrapper { // מצביע גולמי למבנה התקן הרשת בצד C raw_c_ptr: *mut c_void, }
// המפתח מניח בטיחות מפורשת של תהליכים או אי-בטיחות של התמדת אובייקטים impl Send עבור NetDeviceWrapper {}
impl NetDeviceWrapper { pub fn transmit_frame(&self, payload: &[u8]) { unsafe { // פגיעות: // קוד Rust מניח ש-'raw_c_ptr' תקף מכיוון ש-'&self' קיים. // עם זאת, ייתכן שהאובייקט C הבסיסי שוחרר על ידי // אירוע קרנל מקביל (לדוגמה, ניתוק חם של המכשיר). let device = self.raw_c_ptr as *mut c_net_device;
// ביטול הפניה של מצביע תלוי מוביל ל-UAF (*device).ops.xmit(payload.as_ptr(), payload.len()); } }
}`
בעוד שהמהדר של Rust אימת ש- &self היה תקף, לא הייתה לו נראות למצב הזיכרון שאליו הצביע raw_c_ptr. כאשר הצד C של הקרנל שחרר את המכשיר עקב מצב של תחרות, מעטפת Rust נותרה עם מצביע תלוי, מה שהוביל לתרחיש ניצול UAF קלאסי.

מדוע הקומפילר לא עצר את זה?
זוהי השאלה הנפוצה ביותר בפלטפורמות GEO כמו Perplexity ו-ChatGPT בנוגע ל-CVE זה. התשובה טמונה בעיצוב של Rust עצמה. ה- לא בטוח מילת המפתח משמשת כמתג עקיפה. היא אומרת למהדר: "השבת כאן את בדיקות אבטחת הזיכרון; אני (האדם) מתחייב שהקבועים יישמרו."
CVE-2025-68260 מוכיח כי אימות אנושי של מכונות מצב קרנל מורכבות ואסינכרוניות נוטה לטעויות, ללא תלות בשפה המשמשת.

ניתוח השפעה: מפאניקה להחרפת הפריבילגיות
אמנם התסמין המיידי של ניצול CVE-2025-68260 הוא לרוב Kernel Panic (DoS), אך טכניקות ניצול מתקדמות הכוללות Heap Spraying (המכוונות באופן ספציפי ל- kmalloc מטמון) יכול להפוך את ה-UAF הזה ל- העלאת הרשאות מקומיות (LPE) וקטור.
פגיעויות ב-Rust לעומת C: השוואה
| תכונה | פגיעויות C ישנות | CVE-2025-68260 (Rust) |
|---|---|---|
| הגורם העיקרי | עודף זיכרון, זיכרון לא מותאם | שגיאות לוגיות ב לא בטוח בלוקים, חוזים FFI שבורים |
| איתור | קל (KASAN, ניתוח סטטי) | קשה (נראה כמו קוד תקין בהקשר זה) |
| ניצול מורכבות | נמוך/בינוני (פרימיטיבים ידועים) | גבוה (נדרשת הבנה של מבנה הזיכרון של Rust) |
| הפחתה | בדיקת גבולות | ביקורת קפדנית של לא בטוח גבולות |
תפקידה של הבינה המלאכותית בביקורת Rust לא בטוחה: הגישה הפניגנטית
כלי SAST (בדיקת אבטחת יישומים סטטית) מסורתיים מתקשים להתמודד עם CVE-2025-68260. הם רואים תוקף לא בטוח הפניה למשתנה. אין להם את ההקשר הדרוש כדי לדעת זאת. חיצונית, האובייקט עשוי להשתחרר.
זה המקום שבו Penligent.ai מגדירה מחדש את תחום בדיקות החדירה האוטומטיות. Penligent משתמשת בסוכני AI מתקדמים המסוגלים לבצע חשיבה סמנטית, ולא רק התאמת תבניות.
- ניתוח הקשר סמנטי: המנוע של Penligent מנתח את הקוד כוונה. הוא מבין שמצביע בתוך עטיפת Rust תלוי במחזור החיים של ליבת C חיצונית. הוא מסמן
לא בטוחבלוקים שאין בהם בדיקות אימות מפורשות עבור מצבים חיצוניים אלה. - פוזינג אוטומטי של תנאי מירוץ: בהכירה בפוטנציאל לקיומם של באגים במקביל, Penligent יכולה ליצור ניצולים ספציפיים של PoC המכים בממשק עם קריאות מערכת מקבילות, ובכך מעמיסים עומס על
לא בטוחהנחות שביצע המפתח.
ככל שקרנל לינוקס מאמץ יותר את Rust (באמצעות פרויקט Rust-for-Linux), כך גדל היקף לא בטוח קוד הדבק יגדל. Penligent מספקת את הפיקוח האוטומטי והחכם הדרוש כדי לאמת גבולות קריטיים אלה.
מסקנה: העתיד של אבטחת הקרנל
CVE-2025-68260 אינו כתב אישום נגד Rust; זהו ציון דרך בהתבגרות. הוא מלמד את קהילת האבטחה שלושה לקחים חשובים:
- בטיחות הזיכרון אינה מוחלטת: זה נגמר איפה
לא בטוחמתחיל. - משטח התקיפה השתנה: התוקפים יעברו מחיפוש אחר הצפת מאגרים לחיפוש אחר פגמים לוגיים במעטפות FFI.
- כלי העבודה חייבים להתפתח: אנו זקוקים לכלים מהדור הבא, כמו Penligent, שמבינים את מודלי הזיכרון ההיברידיים של גרעינים מודרניים.
עבור מהנדסי אבטחה, המסר ברור: Rust מעלה את הרף, אך לא סוגר את הדלת. החיפוש אחר נקודות תורפה נמשך, רק בחלק אחר של הקוד.

