CVE-2025-38352 היא פגיעות במצב תחרות בקרנל לינוקס, שמקורה בטיפול בטיימר המעבד POSIX, שתוקנה באמצע שנת 2025, אך נצפתה ניצול פעיל בשטח, במיוחד במכשירי Android. פגם זה נובע מ-classic תנאי מירוץ TOCTOU בין handle_posix_cpu_timers() ו posix_cpu_timer_del(), ויוצר חלון זמן שבו משימות יוצאות מטופלות באופן שגוי, מה שמוביל לפוטנציאל להרחבת הרשאות או לחוסר יציבות במערכת. (turn0search0)
עבור מהנדסי אבטחה הבונים, פורסים ומגנים על תשתית מבוססת לינוקס — כולל סביבות ענן, קונטיינר ומובייל — פגיעות זו מדגישה את הסכנות המתמשכות הטמונות בבאגים עדינים של ריבוי משימות במרכיבי הליבה של המערכת.

הבנת מנגנון הפגיעות
בלב CVE-2025-38352 הוא תנאי מירוץ זמן-בדיקה/זמן-שימוש (TOCTOU), סוג קלאסי של באג במקבילות, שבו הקוד מניח תנאי שעשוי להשתנות לפני שהפעולה המתאימה תושלם.
במקרה זה, כאשר משימה מסתיימת, הקרנל מפעיל את לוגיקת טיימר ה-CPU כדי לנקות את המשאבים. עם זאת, מכיוון ש handle_posix_cpu_timers() יכול להיקרא מתוך הקשר של הפרעה (IRQ) בזמן שהמשימה נקצרת, ו posix_cpu_timer_del() פועל במקביל, בדיקות מצב פנימיות לא עקביות מאפשרות הפניות זיכרון לא בטוחות והתנהגות לוגיות לא תקינה. תיקון בעיה זו הצריך הכנסת מצב יציאה להיכנס run_posix_cpu_timers() כך שטיימרים לא יעובדו עבור משימה שסופה מובטח. (turn0search0)
תנאי מירוץ במערכות משנה של ליבת מערכת ההפעלה ברמה נמוכה הם מורכבים בשל תלותם בתזמון מדויק של שילובים ובנתיבי ריבוי משימות, אשר לרוב אינם נכללים בסריקות ובניתוחים סטטיים.
מדוע CVE-2025-38352 הוא קריטי
תנאי מירוץ לעיתים קרובות מוערכים בחסר, אך הם מהווים סוג באגים בעל השפעה רבה במערכות הפעלה, במיוחד כאשר הן מתרחשות ברכיבים כמו תזמון מעבד או ניהול מחזור חיים של משימות. תנאי מירוץ קודמים של הקרנל (לדוגמה, CVE-2014-3153) הובילו לעלייה ברמת ההרשאות המקומיות או אפילו לפאניקה בקרנל כאשר נעשה בהם שימוש לרעה.
הפגיעות אושרה כ מנוצל באופן פעיל בטבע. על פי דוחות אבטחה, הוא הופיע ב עלון אבטחת Android לחודש ספטמבר 2025, לצד פגם נוסף שהולך ומחמיר, המדגים כי התוקפים מנצלים את תנאי המירוץ הזה כדי לחמוק מסביבות ההפעלה המוגבלות ולהעלות את רמת ההרשאות שלהם ללא צורך בגישה מרחוק. (turn0search1)
בנוסף, הסוכנות האמריקאית לאבטחת סייבר ותשתיות (CISA) הוסיפה CVE-2025-38352 ל קטלוג פגיעויות ידועות שנוצלו (KEV), מה שמחזק את העדיפות לתיקון בסביבות ארגוניות וממשלתיות. (turn0search0)
מנגנוני ניצול ותסריטי איומים
אמנם לא ניתן לבצע כאן באופן ישיר הרצת קוד מרחוק קלאסית, תוקפים מקומיים—כגון משתמשים שנפגעו, תהליכים ללא הרשאות בסביבות מרובות משתמשים או יישומים זדוניים ב-Android—יכולים לנצל את התחרות הזו כדי:
- התרסקות הקרנל (המובילה למניעת שירות)
- תיבות חול של תהליכי בריחה (Android)
- מפעיל התנהגות לא מכוונת של הקרנל
- ניסיון להגדיל את ההרשאות המקומיות
שרשרת ההתקפה כוללת בדרך כלל מירוץ בין שגרות יציאת המשימה ומחיקת הטיימר, תוך ניצול החלון שבו תת-מערכת הטיימר מטפלת באופן שגוי במעברי מצב.
דוגמה לדפוס ניצול ברמה גבוהה היא:
c
// תבנית חלון מירוץ מפושטת if (task->active_timer) { // זמן הבדיקה delete_timer(task->timer); // זמן השימוש // לא בטוח כאשר ניקוי טיימר מקביל קוצר משימה}
איתור והפעלה אמינים של תופעה זו דורשים תנאים מדויקים, המתקבלים לרוב באמצעות עומס על חוטים מרובי ליבות, אך דפוס זה מראה כיצד הפגם נובע מחוסר התאמה בין תהליכים מקבילים.
מערכות מושפעות והנחיות לתיקון
מערכות פגיעות כוללות גרעיני לינוקס שלא הכילו את התיקון שבוצע באמצע שנת 2025, במיוחד גרעינים שנבנו ללא ה- מצב יציאה בדוק את שגרות הניקוי של טיימר המעבד POSIX. הדבר משפיע על מגוון רחב של סביבות:
- מכשירים Android לפני עדכון האבטחה של ספטמבר 2025
- הפצות לינוקס שלא ביצעו backport לתיקון (Debian, Ubuntu, Red Hat, SUSE, Amazon Linux וכו').
- מארחי קונטיינרים ומכונות וירטואליות בענן המשתמשים בגרסאות קרנל פגיעות
התיקון מתקן את הבעיה על ידי הוספת מצב יציאה ודא שהטיימרים מעובדים רק כאשר המשימות פעילות במלואן, ובכך מבטל את חלון המירוץ הלא בטוח. מהנדסי אבטחה צריכים לוודא ש:
- מערכות המארחות מקבלות את עדכוני הקרנל המתאימים
- מכשירים Android מעודכנים לתיקון האבטחה 2025-09 או מאוחר יותר
- פלטפורמות קונטיינרים ותזמור מחייבות תיקון גרעין המארח

השוואה עם בעיות אחרות של ריבוי משימות בקרנל
כדי להבין את ההשפעה של תנאי הגזע, יש לקחת בחשבון באגים אחרים בקרנל, כגון CVE-2024-1086, שכללה העלאת הרשאות באמצעות מנגנונים אחרים של הקרנל. תנאי מירוץ מתרחשים לעתים קרובות יחד עם שימוש לאחר שחרור (use-after-free) ויכולים להיות עדינים יותר מאשר פגיעה ישירה בזיכרון. יש חשיבות רבה לשימוש בפרימיטיבים של סנכרון נכונים וניהול מצב זהיר.
להלן טבלת השוואה של סוגי באגים הקשורים לריבוי משימות הרלוונטיים לאבטחת הקרנל:
| סוג באג | הגורם הבסיסי | השפעה אופיינית | דוגמה CVE |
|---|---|---|---|
| תנאי מירוץ | סדר פעולות שגוי | DoS, העלאת הרשאות | CVE-2025-38352 |
| שימוש לאחר שחרור | גישה לזיכרון משוחרר | תאונה, RCE | CVE-2025-38352 (משני) |
| מבוי סתום | נעילה לא תקינה | תלייה/DoS | CVE-2024-xxxx |
| דליפת משאבים | ניקוי חסר | הזיכרון נגמר | שונות |
תנאי מירוץ כמו CVE-2025-38352 הם מסוכנים מכיוון שהם עלולים להוביל ל דפוסים של שימוש לאחר שחרור ותופעות לוואי אחרות שניתן לנצל אם תוקף יפעיל אותן בתנאים ספציפיים.
גישות לזיהוי והוכחת היתכנות
בשל אופייה המקביל של פגיעות זו, זיהויה אינו טריוויאלי:
- בדיקות עומס תחת עומס גבוה במערכות מרובות ליבות משפרות את הכיסוי
- כלי ניתוח דינמיים להדמיית נתיבי ביצוע משולבים
- מסגרות פוזינג המכוונות לחלונות מירוץ
להלן מושג בסיסי הממחיש את הלחץ הנובע מריבוי משימות:
לנזוף
`#!/bin/bash
לולאת עומס מקבילית פשוטה
while true; do for i in {1..4}; do taskset -c $i ./race_test_binary &done wait done`
פעולה זו אינה מנצלת את הפגיעות באופן ישיר, אך מגבירה את קצב הטיפול בטיימר ואת פעולות היציאה הפועלות במקביל, מה שמגדיל את הסבירות להפעלת חלונות תזמון במהלך הבדיקה.
אסטרטגיות הפחתה והגנה
תיקון הפגיעות כרוך ביישום תיקון הקרנל ועדכון המערכות המושפעות. מהנדסי אבטחה צריכים לשקול גם:
- תצורות ליבת Harden (השבת ממשקי ניפוי באגים)
- הגבל ביצוע קוד ללא הרשאות על מארחים
- עקוב אחר יומני הקרנל לאיתור חריגות כמו פאניקה או פקיעת זמן של תוכנת השמירה
- אכוף הרשאות מינימליות למשתמשים מקומיים כדי לצמצם את היקף הנזק של ניסיונות LPE
דפוס הגנה מונע לזיהוי מירוץ מקומי יכול להשתמש בכלים לבקרת תקינות זמן ריצה של הקרנל, כגון eBPF או LKRG, כדי לפקח על התנהגות חשודה של ניקוי טיימר.
Penligent: זיהוי מבוסס בינה מלאכותית ותעדוף סיכונים עבור CVE
בבסיסי קוד ותשתיות גדולים, איתור ידני של בעיות קונקרטיות עדינות כמו CVE-2025-38352 הוא משימה קשה ורווית טעויות. פלטפורמות מבוססות בינה מלאכותית כמו Penligent יכול לעזור על ידי:
- ניתוח נתיבי קוד מורכבים בין מודולים לזהות תנאים פוטנציאליים של מירוץ
- השוואת דפוסים מול נתוני CVE היסטוריים וחתימות ניצול
- מתן עדיפות לתזרימים בסיכון גבוה לבדיקת אבטחה
- שילוב עם צינורות CI/CD כדי לסמן דפוסים לא בטוחים לפני הפריסה
מכיוון שתנאי מירוץ תלויים לעתים קרובות באינטראקציות מורכבות בין פונקציות והקשרים, ניתוח בסיוע בינה מלאכותית הוא בעל ערך רב במיוחד לזיהוי דפוסים חשודים שהניתוח הסטטי המסורתי מחמיץ, במיוחד בשפות ובסביבות כמו kernel C.
פגיעויות קשורות שכדאי לעקוב אחריהן
בעוד CVE-2025-38352 הוא בעיקר מצב תחרות, באגים אחרים בקרנל כמו CVE-2025-38499 (פגם באימות הרשאות) מדגים את החשיבות של שמירה על עדכון המערכות וניטור נתיבי הסלמה מקומיים. באגים בעלי השפעה כה רבה מתעצמים לעתים קרובות כאשר הם משולבים עם פגיעויות אחרות בתרחיש תקיפה.
ערנות מתמדת וניהול תיקונים נותרים מרכיבים מרכזיים באבטחה הגנתית יעילה.
סיכום
CVE-2025-38352 אולי אינו ניצול מרחוק קל, אך ניצולו בפועל והשפעתו הרחבה על גרעיני לינוקס ואנדרואיד הופכים אותו למקרה בוחן קריטי בניהול פגיעות מודרני. עבור מהנדסי אבטחה, הבנת המכניקה של תנאי מירוץ ושימוש בכלים אוטומטיים לאיתור ותיעדוף פגמים כאלה – למשל, ניצול פלטפורמות כמו Penligent – משפרים מאוד את היכולת להגן על תשתית מורכבת.
תיקון מיידי, ניטור זמן ריצה וחיזוק הארכיטקטורה הם חיוניים כדי להפחית את הסיכון של העלאת הרשאות ולהבטיח את תקינות המערכת בסביבות הטרוגניות.

