מספר נקודות תורפה זוהו ב-Linux Kernel

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

הראשונה מבין הפגיעות היא CVE-2022-0995 והוא קיים בתת-מערכת מעקב האירועים "watch_queue" וזה גורם לנתונים להיכתב לאזור של זיכרון הליבה מחוץ למאגר המוקצה. ההתקפה יכולה להתבצע על ידי כל משתמש ללא הרשאות ולבצע את הקוד שלו עם הרשאות ליבה.

הפגיעות קיימת בפונקציה watch_queue_set_size() ומשויכת לניסיון לנקות את כל המצביעים מהרשימה, גם אם לא הוקצה להם זיכרון. הבעיה מתבטאת כאשר בונים את הליבה עם אפשרות "CONFIG_WATCH_QUEUE=y", המשמשת את רוב ההפצות של לינוקס.

מוזכר כי הפגיעות זה נפתר בשינוי שהתווסף ל הקרנל ב-11 במרץ.

הפגיעות השנייה שנחשפה היא CVE-2022-27666 מה זה קיים במודולי ליבה esp4 ו-esp6 שמיישמות טרנספורמציות של Encapsulating Security Payload (ESP) עבור IPsec המשמשות בעת שימוש גם ב-IPv4 וגם ב-IPv6.

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

מוזכר ש הפגיעות תוקנה בקרנל ב-7 במרץ (תוקן ב-5.17, 5.16.15 וכו'), פלוס פורסם אב טיפוס עובד מניצול המאפשר למשתמש רגיל לקבל גישת שורש ב-Ubuntu Desktop 21.10 בהגדרות ברירת המחדל ב- GitHub.

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

נקודות תורפה נוספות שנחשפו הן CVE-2022-1015 y CVE-2022-1016 בתת-מערכת netfilter במודול nf_tables שמזין את מסנן מנות nftables. החוקר שזיהה את הבעיות הודיע ​​על הכנת ניצול עבודה עבור שתי הפגיעויות, שמתוכננות להשתחרר כמה ימים לאחר שההפצות ישחררו עדכוני חבילת ליבה.

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

הפגיעות נובעת לעובדה שהיזמים רמזו לכך הערך של "enum nft_registers reg" הוא בייט אחד, בעוד כאשר אופטימיזציות מסוימות מופעלות, המהדר, על פי מפרט C89, אתה יכול להשתמש בערך של 32 סיביות בשביל זה. בשל מוזרות זו, הגודל המשמש לבדיקה והקצאת זיכרון אינו תואם את הגודל האמיתי של הנתונים במבנה, מה שמוביל לזנב של המבנה על מצביעי מחסנית.

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

ניתן להשיג אותם במרחב שמות נפרד של רשת (מרחבי שמות רשת) עם זכויות CLONE_NEWUSER או CLONE_NEWNET (לדוגמה, אם אתה יכול להפעיל קונטיינר מבודד). הפגיעות קשורה קשר הדוק גם לאופטימיזציות המשמשות את המהדר, אשר, למשל, מופעלות בעת הידור במצב "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". ניצול הפגיעות אפשרי החל מגרסת Linux 5.12.

הפגיעות השנייה ב-netfilter מתרחשת בעת גישה אזור זיכרון שכבר פנוי (use-after-free) במנהל ההתקן של nft_do_chain ויכול לגרום לדליפה של אזורי זיכרון ליבה לא מאותחלים שניתן לקרוא על ידי מניפולציה עם ביטויי nftables ולהשתמש בהם, למשל, לקביעת כתובות מצביע במהלך ניצול פיתוח עבור פגיעויות אחרות. ניצול הפגיעות אפשרי החל מגרסת Linux 5.13.

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


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

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

*

*

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