Glibc 2.35 מגיע עם שיפורים, תיקוני באגים ועוד

לאחר שישה חודשים של פיתוח הוכרזה שחרור הגרסה החדשה של Glibc 2.35 שבו כולל תיקונים מ-66 מפתחים ומהשיפורים המיושמים נוכל לגלות שנוספה תמיכה עבור המקום "C.UTF-8", הכולל איסוף עבור כל קודי Unicode, אך מוגבל לשימוש בטווחי ASCII בפונקציות fnmatch, regexec ו-regcomp לשמירה מֶרחָב.

המקום הוא כ-400 KB, מתוכם 346 KB הם נתוני LC_CTYPE עבור Unicode, ויש להתקין אותו בנפרד (לא מובנה ב-Glibc). נתוני קידוד, מידע על סוג התווים וטבלאות תעתיק עודכנו כדי לתמוך במפרט Unicode 14.0.0.

שינוי נוסף הבולט הוא זה י ליישם פונקציות ופקודות מאקרו המעגלות את התוצאה לסוג צר יותר, בנוסף להטמעת פונקציות ופקודות מאקרו כדי למצוא את המינימום והמקסימום של מספרי נקודה צפה מסוגים float, long double, _FloatN ו-_FloatNx, המתוארים במפרט IEEE 754-2019.

עבור פונקציות exp10, פקודות המאקרו המתאימות מתווספות לקובץ הכותרת, שאינם קשורים לסוגים ספציפיים, בתוספת המאקרו _PRINTF_NAN_LEN_MAX נוסף ל , המוצע בטיוטת תקן ISO C2X.

מערכת הקישור הדינמי מיישמת אלגוריתם סיווג חדש DSO באמצעות חיפוש עומק (DFS) לטפל בבעיות ביצועים בעת טיפול בתלות לולאה. לבחירת אלגוריתם המיון של DSO, מוצע הפרמטר glibc.rtld.dynamic_sort, אותו ניתן להגדיר ל-"1" כדי לחזור לאלגוריתם הקודם.

חוץ מזה נוספה תמיכה בפונקציה חדשה '__memcmpeq' ל-ABI, המשמש מהדרים כדי לייעל את השימוש ב-'memcmp' כאשר ערך ההחזרה של פונקציה זו משמש רק כדי לבדוק את מצב ההשלמה של פעולה.

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

מצד שני, זה מספק הידור ברירת מחדל של כל קבצי ההפעלה של התוכניות המובנות וחבילת בדיקה במצב PIE (ניתן הפעלה בלתי תלוי במיקום).

כדי להשבית התנהגות זו, האפשרות "-disable-default-pie" מסופקת, פלוס עבור לינוקס, הוסיף הגדרה glibc.malloc.hugetlb כדי לשנות את יישום malloc לשימוש בקריאת מערכת madvise עם הדגל MADV_HUGEPAGE עבור mmap ו-sbrk, או להשתמש ישירות בדפי זיכרון גדולים על ידי ציון הדגל MAP_HUGETLB בקריאות mmap.

במקרה הראשון, ניתן להשיג שיפור ביצועים על ידי שימוש ב-Huge Pages שקופים במצב madvise, ובמקרה השני, ניתן להשתמש בדפי ענק השמורים במערכת (Huge Pages).

כמו כן, יש לציין שחלק מהחולשות תוקנו בגרסה החדשה הזו:

  • CVE-2022-23218, CVE-2022-23219: הצפת מאגר בפונקציות svcunix_create ו-clnt_create הנגרמת על ידי העתקת התוכן של פרמטר שם קובץ אל המחסנית מבלי לבדוק את גודל הנתונים שהועתקו. עבור יישומים שנבנו ללא הגנת מחסנית ומשתמשים בפרוטוקול "יוניקס", הפגיעות עלולה להוביל לביצוע קוד זדוני בעת עיבוד שמות קבצים ארוכים מאוד.
  • CVE-2021-3998: פגיעות בפונקציה realpath() הנגרמת על ידי החזרת ערך שגוי בתנאים מסוימים המכילים נתונים שיוריים לא מנוקים מהמחסנית. עבור תוכנית SUID-root fusermount, ניתן להשתמש בפגיעות כדי לקבל מידע רגיש מזיכרון התהליך, למשל, כדי לקבל מידע מצביע.
  • CVE-2021-3999: גלישת מאגר בתים בודדים בפונקציה getcwd()‎. הבעיה נגרמת על ידי באג שקיים מאז 1995. כדי לקרוא ל-overflow, במרחב שמות נפרד של נקודת הרכבה, פשוט קרא chdir() בספריית "/".

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


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

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

*

*

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