פגיעות בפרוטוקול הרשת CAN BCM איפשרה הסלמה של הרשאות בליבת הלינוקס 

אתמול פורסם מידע על פגיעות בליבת הלינוקס ואשר כבר מקוטלג כ- CVE-2021-3609. פגיעות זו מאפשר למשתמש מקומי להעלות את ההרשאות שלו במערכת עקב מצב מרוץ ביישום פרוטוקול CAN BCM ובא לידי ביטוי בגרסאות 2.6.25 עד 5.13-rc6 של ליבת לינוקס.

הפסיקה מנצלת בגלל ה פרוטוקול CAN BCM מאפשר לך לרשום מנהל הודעות משלך של רשת האזור של הבקר (CAN) וחבר אותו לשקע רשת ספציפי. כאשר מגיעה הודעה נכנסת, נקראת הפונקציה bcm_rx_handler () תוקף יכול לנצל תנאי מרוץ ולאלץ את שקע הרשת להיסגר בזמן ביצועו bcm_rx_handler ().

הבעיה מגיעה כאשר השקע סגור והפונקציה נקראת bcm_release (), בו משוחרר זיכרון המוקצה למבנים bcm_op ו- bcm_sock, הממשיכים לשמש את המטפל בcm_rx_handler () שעדיין פועל, וכך נוצר מצב שמוביל לגישה לחסימת זיכרון שכבר שוחררה (שימוש אחרי חופשי).

זוהי הודעה על הבאג שדווח לאחרונה (CVE-2021-3609) בפרוטוקול רשת CAN BCM בגרעין לינוקס, החל מגרסה 2.6.25 וכלה ב 5.13-rc6.
הפגיעות היא תנאי גזע ברשת / can / bcm.c המאפשרת הסלמה של הרשאות לשורש. בתחילה דווח על הסיסבוט על הבעיה ונורברט סלוסארק הוכיח את עצמו כניתן לניצול.

ההתקפה מסתכמת בפתיחת שני שקעי CAN BCM וקשירתם לממשק ה- vcan. במחבר הראשון אתה מתקשר sendmsg () עם המחוון RX_SETUP כדי להגדיר את הבקר להודעות CAN נכנסות ועל המחבר השני, אתה מתקשר sendmsg () כדי לשלוח הודעה למחבר הראשון.

אחרי שההודעה מגיעה, השיחה bcm_rx_handler () מופעלת והתוקף לוקח את הרגע הנכון וסוגר את השקע הראשון, מה שמוביל להשקה של bcm_release () ושיגור המבנים bcm_op ו- bcm_sockלמרות שהעבודה של bcm_rx_handler () זה עדיין לא הושלם.

על ידי מניפולציה על התוכן של bcm_sock, תוקף יכול לדרוס מצביע לפונקציה sk-> sk_data_ready (sk), לבצע הפניית מחדש, ובאמצעות טכניקות תכנות מכוונות חזרה (ROP), לעקוף את פרמטר modprobe_path ולגרום לקוד שלו לרוץ כשורש .

בעת שימוש בטכניקת ROP, התוקף אינו מנסה לשים את הקוד שלו לזכר, אבל זה פועל הלאה החלקים של הוראות מכונה כבר זמינות בספריות טעונות, המסתיימות בהצהרת החזרת שליטה (ככלל אלה סוף פונקציות הספרייה).

את ההרשאות הנדרשות לביצוע התקפה ניתן לרכוש על ידי משתמש חסר זכות במכולות שנוצרו במערכות עם אפשרות למרחבי שמות משתמשים. לדוגמה, מרחבי שמות משתמשים נכללים כברירת מחדל באובונטו ובפדורה, אך אינם מופעלים ב- Debian וב- RHEL.

ניסיון הניצול שלי מתרכז בגרעינים עם גרסה> = 5.4-rc1 מ- commit bf74aa86e111. לא חקרתי ניצול גרעינים ישנים מ- 5.4-rc1 באמצעות משימות משימות, אולם ניצול של גרעינים ישנים נראה גם כן אפשרי. 

מוזכר ש החוקר שזיהה את הפגיעות הצליח להכין ניצול להשיג זכויות שורש במערכות עם גרעינים מגרסה 5.4 ואילך, כולל אפשרות להתקפה מוצלחת על אובונטו 20.04.02 LTS.

עבודת הניצול מצטמצמת לבניית שרשרת קריאות לבלוקים דומים ("גאדג'טים") כדי להשיג את הפונקציונליות הנדרשת. ההתקפה דורשת גישה ליצירת שקעי CAN וממשק רשת vcan מוגדר.

בסופו של דבר מוזכר שהבעיה עדיין נמשכת ברוב ההפצות, אך זה מספר ימים לפני שפורסמו התיקונים המתאימים.

אם אתה מעוניין לדעת יותר על כך, אתה יכול להתייעץ הקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.