שתי נקודות תורפה זוהו ב-Linux Kernel שעדיין אפשרו למשתמשים להעלות את ההרשאות שלהם 

פגיעות

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

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

הראשון הוא פגיעות. (CVE-2023-32233) שזוהה בתת המערכת של Netfilter ונגרם על ידי גישה לזיכרון ללא שימוש במודול nf_tables, המבטיח את פעולת מסנן המנות nftables.

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

הבעיה שוחזר בגרסאות שונות של ליבת לינוקס, כולל לינוקס 6.3.1 (נוכחי יציב) וניתן לנצל את הפגיעות על ידי שליחת בקשות בעלות מבנה מיוחד לעדכון תצורת ה-nftables. מוזכר שההתקפה דורשת גישה ל-nftables, אותם ניתן להשיג במרחב שמות רשת נפרד אם יש לך את הזכויות CLONE_NEWUSER, CLONE_NEWNS או CLONE_NEWNET (לדוגמה, אם אתה יכול להפעיל קונטיינר מבודד).

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

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

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

התקלה השנייה זוהתה, הייתה הפגיעות (CVE-2023-2598) ב יישום ממשק ה-I/O האסינכרוני io_uring כלול בליבת לינוקס מאז גרסה 5.1.

הבעיה נגרמת על ידי באג בפונקציה io_sqe_buffer_register, המאפשרת גישה לזיכרון פיזי מחוץ לגבולות מאגר שהוקצה סטטית. הבעיה מופיעה רק בסניף 6.3 ותתוקן בעדכון 6.3.2 הבא.

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

אז bvec ירחיב הרבה מעבר לדף היחיד שבו למעשה מותר לגעת בו. מאוחר יותר, IORING_OP_READ_FIXED ו-IORING_OP_WRITE_FIXED מאפשרים לנו לקרוא ולכתוב למאגר (כלומר, הזיכרון שה-bvec מצביע עליו) כרצוננו. זה מאפשר גישה לקריאה/כתיבה לזיכרון הפיזי שמאחורי הדף היחיד שיש לנו בפועל.

פרסום הפגיעות מזכיר את שלבי שכפול השגיאות:

1. צור memfd
2. שגיאה בעמוד בודד במתאר הקובץ הזה
3. השתמש ב-MAP_FIXED כדי למפות דף זה שוב ושוב, למיקומים עוקבים
4. רשום את כל האזור שמילאת בדף זה בתור
מאגר קבוע עם IORING_REGISTER_BUFFERS
5. השתמש ב-IORING_OP_WRITE_FIXED כדי לכתוב את המאגר לקובץ אחר
(OOB קריאה) או IORING_OP_READ_FIXED כדי לקרוא נתונים במאגר (
OOB לכתוב).

לבסוף ראוי להזכיר זאת כבר זמין  אב טיפוס של ניצול עובד (CVE-2023-2598) לבדיקה, מה שמאפשר לך להריץ קוד עם הרשאות ליבה.

פגיעות (CVE-2023-32233) זה תוקן בעדכון 6.4-rc ותוכל לעקוב אחר תיקון הפגיעות בהפצות בדפים: דביאןאובונטוג'נטורהלפדורהSUSE/openSUSEקשת.


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

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

*

*

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