שוב... הם מצאו פגיעות נוספת בתת המערכת eBPF

החדשות התפרסמו לאחרונה זיהה פגיעות חדשה (כבר מקוטלג תחת CVE-2021-4204) בתת המערכת eBPF (לשם שינוי) ...

וזה שתת-המערכת eBPF לא הפסיקה להיות בעיית אבטחה גדולה עבור ה-Kernel, כי בקלות במה שהיה כל 2021 נחשפו שתי נקודות תורפה בחודש ועל חלקן אנחנו מדברים כאן בבלוג.

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

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

פגיעות זו מאפשרת לתוקפים מקומיים להגדיל את ההרשאות
התקנות ליבת לינוקס מושפעות. תוקף חייב קודם כל להשיג את
היכולת להריץ קוד בעל הרשאות נמוכות על מערכת היעד
לנצל את הפגיעות הזו.

הפגם הספציפי קיים בטיפול בתוכניות eBPF. השאלה נובע מהיעדר אימות מתאים של תוכניות eBPF שסופקו על ידי המשתמש לפני הפעלתם. 

חוץ מזה, חלק מהפונקציות דורשות שהערך PTR_TO_MEM יועבר כארגומנט והמאמת חייב לדעת את גודל הזיכרון המשויך לארגומנט כדי למנוע בעיות פוטנציאליות של הצפת מאגר.

אמנם לפונקציות bpf_ringbuf_submit ו-bpf_ringbuf_discard, נתונים על גודל הזיכרון המועבר אינם מדווחים למאמת (כאן מתחילה הבעיה), שהתוקף מנצל כדי להיות מסוגל להשתמש בו כדי להחליף אזורי זיכרון מחוץ לגבול המאגר בעת ביצוע קוד eBPF בעל מבנה מיוחד.

תוקף יכול לנצל את הפגיעות הזו להסלים הרשאות ולהפעיל קוד בהקשר של הליבה. שים לב ש-bpf ללא הרשאות מושבת כברירת מחדל ברוב ההפצות.

מוזכר שכדי שמשתמש יבצע תקיפה, המשתמש חייב להיות מסוגל לטעון את תוכנית ה-BPF שלך והפצות רבות של לינוקס אחרונות חוסמות זאת כברירת מחדל (כולל גישה ללא הרשאות ל-eBPF אסורה כעת כברירת מחדל בקרנל עצמו, החל מגרסה 5.16).

לדוגמה, מוזכר כי הפגיעות ניתן לנצל בתצורת ברירת המחדל ב הפצה שעדיין די בשימוש ומעל לכל מאוד פופולרית כמו שהיא אובונטו 20.04 LTS, אבל בסביבות כמו אובונטו 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 ו-Fedora 33, זה בא לידי ביטוי רק אם המנהל הגדיר את הפרמטר kernel.unprivileged_bpf_disabled ל-0.

נכון לעכשיו, כדרך עוקפת לחסימת הפגיעות, מוזכר שניתן למנוע ממשתמשים חסרי הרשאות להפעיל תוכניות BPF על ידי הפעלת הפקודה בטרמינל:

sysctl -w kernel.unprivileged_bpf_disabled=1

לבסוף, יש להזכיר כי הבעיה הופיעה מאז ליבת לינוקס 5.8 ונשארה ללא תיקון (כולל גרסה 5.16) וזו הסיבה קוד הניצול יתעכב במשך 7 ימים ויפורסם בשעה 12:00 UTC, כלומר ב-18 בינואר 2022.

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

למי שמעוניין לדעת על מצב היווצרות העדכונים עם ביטול הבעיה בחלק מההפצות העיקריות, כדאי לדעת שניתן לעקוב אחריהם מהעמודים הבאים:  דביאןרהלSUSEפדורהאובונטוקֶשֶׁת.

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


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

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

*

*

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