לאחר שישה חודשים של פיתוח שחרור ספריית מערכת (glibc) , התואם באופן מלא לדרישות של תקני ISO C11 ו-POSIX.1-2017. המהדורה החדשה כוללת תיקונים מ-67 מפתחים.
מאלה שיושמו ב-Glibc 2.32 אתה יכול לציין:
- נוספה תמיכה עבור מעבדי Synopsys ARC HS (ARCv2 ISA). הפורט דורש לפחות binutils 2.32, gcc 8.3 ואת הליבה. Linux 5.1. שלוש גרסאות ABI נתמכות: arc-linux-gnu, arc-linux-gnuhf ו-arceb-linux-gnu (big-endian);
- טעינה מיושמת של מודולי ביקורת שצוינו ב-DT_AUDIT ובסעיפים
קובץ ההפעלה DT_DEPAUDIT. - עבור ארכיטקטורת powerpc64le, יושמה תמיכה בסוג IEEE128 long double, המופעל במהלך ההרכבה באמצעות האפשרות "-mabi=ieeelongdouble".
- חלק ממשקי ה-API מסומנים בתכונה 'access' של GCC, המאפשרת ל-GCC 10 לייצר אזהרות טובות יותר בעת קומפילציה עבור גלישות מאגר אפשריות ותנאים אחרים מחוץ לתחום.
- עבור Linux-systems יישמו את הפונקציות pthread_attr_setsigmask_np ו-
pthread_attr_getsigmask_np, המאפשרים לאפליקציה לציין מסיכת אות עבור הליכים שנוצרו באמצעות pthread_create. - נתוני קידוד, מידע על סוג תווים וטבלאות תעתיק עודכנו כדי לתמוך במפרט Unicode 13.0.0;
- נוסף קובץ כותרת חדש , אשר מגדיר את המשתנה __libc_single_threaded, אשר ניתן להשתמש בו ביישומים לאופטימיזציות חד-הליך.
- נוספו פונקציות sigabbrev_np ו-sigdescr_np שמחזירות את השם והתיאור המקוצרים של אות (למשל "HUP" ו-"Hangup" עבור SIGHUP).
- נוספו הפונקציות strerrorname_np ו- strerrordesc_np שמחזירות את השם והתיאור של השגיאה (למשל "EINVAL" ו-"Invalid argument" עבור EINVAL).
- עבור פלטפורמת ARM64, נוסף הדגל "--enable-standard-branch-protection" (או -mbranch-protection=standard ב-GCC). דגל זה מאפשר למנגנון ARMv8.5-BTI (Branch Target Indicator) להגן על ביצוע קבוצות הוראות שאין לקפוץ אליהן במהלך הסתעפות. חסימת קפיצות למקטעי קוד שרירותיים מיושמת כדי למנוע יצירת גאדג'טים בניצול תקלות המשתמש בתכנות מונחה החזרה (ROP - התוקף אינו מנסה להציב את הקוד שלו בזיכרון, אלא פועל על נתחי הוראות מכונה קיימים המסתיימים בהוראת החזרה, שממנה נבנית שרשרת קריאה כדי להשיג את הפונקציונליות הרצויה).
- בוצע ניקוי יסודי של תכונות שהוצאו משימוש, כולל הסרת קובץ הכותרת של האפשרויות "--enable-obsolete-rpc" ו-"--enable-obsolete-nsl". הפונקציות sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore ו-sigset, המערכים sys_siglist, _sys_siglist ו-sys_sigabbrev, הסמלים sys_errlist, _sys_errlist, sys_nerr ו-_sys_nerr, ומודול NSS hesiod הוכרזו כמיושנים.
- ldconfig הועבר כברירת מחדל לשימוש בפורמט החדש ld.so.cache, הנתמך ב-glibc כמעט 20 שנה.
- פגיעויות שתוקנו:
- CVE-2016-10228 - מתרחשת לולאה בכלי iconv בעת הפעלה עם האפשרות -c בעת עיבוד נתונים מרובי-בייטים לא חוקיים.
- CVE-2020-10029 - פגיעה במחסנית בעת קריאה לפונקציות טריגונומטריות עם ארגומנט פסאודו-ריק.
- CVE-2020-1752 - קיימת פגיעות מסוג use-after-free בפונקציית glob בעת הרחבת הפניה לספריית בית ("~user") בנתיבים.
- CVE-2020-6096 - טיפול שגוי בערכים שליליים של הפרמטרים memcpy() ו-memmove() הקובעים את גודל האזור המועתק בפלטפורמת ARMv7. לארגן את ביצוע הקוד בעת עיבוד נתונים המעוצבים בצורה מסוימת בפונקציות memcpy() ו-memmove(). משמעות הדבר היא שהבעיה לא תוקן במשך כמעט חודשיים מאז הגילוי לציבור וחמישה חודשים מאז ההודעה למפתחי Glibc.
מקור: OpenNet.ru
