Glibc 2.34 מגיע עם תיקוני פגיעות, פונקציות חדשות עבור Linux ועוד

לאחרונה הוכרזה יציאת הגרסה החדשה של Glibc 2.34. היא מגיעה לאחר שישה חודשי פיתוח וכוללת מספר שינויים חשובים, בעיקר הכללת הספריות libpthread, libdl, libutil ו-libanl, כמו גם תיקוני באגים שונים, שאחד מהם גרם לקריסות.

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

התכונות החדשות העיקריות של Glibc 2.34

בגרסה החדשה של Glibc 2.34, הספריות הראשיות libpthread, libdl, libutil ו-libanl שולבו ; השימוש בפונקציונליות שלהם ביישומים אינו דורש עוד קישור שלהם עם האינדיקטורים -lpthread, -ldl, -lutil ו- -lanl.

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

בין השינויים שהתמקדו בלינוקס ב-Glibc 2.34, הבולט ביותר הוא היכולת הנוספת להשתמש בסוג time_t של 64 סיביות בתצורות שהשתמשו באופן מסורתי בסוג time_t של 32 סיביות . תכונה זו זמינה רק במערכות עם גרסת ליבה 5.1 ומעלה.

שינוי נוסף ספציפי ללינוקס הוא יישום הפונקציה `execveat` , המאפשרת לך להריץ קובץ הפעלה מתוך מתאר קובץ פתוח . פונקציה חדשה זו משמשת גם במימוש הקריאה `fexecve`, שאינה דורשת את הרכבת מערכת הקבצים המדומה `/proc` בעת ההפעלה.

כמו כן נוספה הפונקציה close_range(), הזמינה עבור גרסאות לינוקס 5.9 ומעלה וניתן להשתמש בה כדי לאפשר לתהליך לסגור טווח שלם של תיאורי קבצים פתוחים בבת אחת. בנוסף, יושם הפרמטר glibc.pthread.stack_cache_size, שניתן להשתמש בו כדי להתאים את גודל מטמון מחסנית pthread.

יתר על כן, נוספה הפונקציה `_Fork`, תחליף לפונקציית `fork` שעומדת בדרישות "async-signal-safe", כלומר ניתן לקרוא לה בבטחה ממטפלי אותות. במהלך ביצוע `_Fork`, נוצרת סביבה מינימלית, המספיקה לקריאה לפונקציות במטפלי אותות כגון `raise` ו-`execute`, מבלי להפעיל תכונות שעלולות לשנות נעילות או את המצב הפנימי.

עבור חלק מהפגיעויות המתוקנות ב- Glibc 2.34, מוזכרים הדברים הבאים:

CVE-2021-27645: כשל בתהליך nscd (דמון אחסון במטמון של שרת שמות) עקב קריאה כפולה לפונקציה free בעת עיבוד בקשות קבוצת רשת בעלות מבנה מיוחד.

CVE-2021-33574: גישה לאזור זיכרון מסוג use-after-free בפונקציה mq_notify בעת שימוש בסוג ההתראה SIGEV_THREAD עם מאפיין thread שעבורו מוגדרת מסיכת קשירת CPU חלופית. בעיה זו עלולה לגרום לקריסה, אך אפשרויות תקיפה אחרות אינן נשללות.

CVE-2021-35942: גלישת גודל פרמטר בפונקציית wordexp עלולה לקרוס את היישום.

שינויים בולטים נוספים כוללים:

  • הפונקציה timespec_getres, המוגדרת בטיוטת ISO C2X טיוטה, נוספה ופונקציית timespec_get הוגדלה עם יכולות הדומות לפונקציה POSIX clock_getres.
  • בקובץ gconv-modules, נותרה רק קבוצה מינימלית של מודולי gconv עיקריים, והשאר הועברו לקובץ gconv-modules-extra.conf נוסף הממוקם בספריית gconv-modules.d.
  • השימוש בקישורים סמליים לקישור אובייקטים משותפים הניתנים להתקנה לגרסת Glibc הוסר. אובייקטים אלה מותקנים כעת כפי שהם (למשל libc.so.6 הוא כעת קובץ ולא קישור ל- libc-2.34.so).
  • ב- Linux, פונקציות כמו shm_open ו- sem_open דורשות כעת מערכת קבצים לזיכרון המשותף המותקן בנקודת ההרבה / dev / shm.

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


הוסף כמקור מועדף בגוגל