Glibc 2.32 Системийн номын сангийн хувилбар

Зургаан сарын хөгжлийн дараа нийтэлсэн системийн номын сангийн хувилбар GNU C номын сан (glibc) 2.32, энэ нь ISO C11 болон POSIX.1-2017 стандартын шаардлагыг бүрэн хангасан. Шинэ хувилбарт 67 хөгжүүлэгчийн засварууд багтсан болно.

Glibc 2.32-д хэрэгжүүлсэн сайжруулалт чи тэмдэглэж болно.

  • Synopsys ARC HS (ARCv2 ISA) процессоруудад зориулсан дэмжлэг нэмэгдсэн. Портыг ажиллуулахын тулд дор хаяж binutils 2.32, gcc 8.3 болон Linux kernel 5.1 шаардлагатай. ABI-ийн гурван хувилбар дэмжигддэг: arc-linux-gnu, arc-linux-gnuhf болон arceb-linux-gnu (big-endian);
  • DT_AUDIT болон хэсэгт заасан аудитын модулиудыг ачаалж байна
    Гүйцэтгэх файлын DT_DEPAUDIT.

  • Powerpc64le архитектурын хувьд "-mabi=ieeelongdouble" сонголтоор бүтээх үед идэвхжсэн IEEE128 урт давхар төрлийн дэмжлэгийг хэрэгжүүлсэн.
  • Зарим API-ууд нь GCC 'хандах' атрибуттай тайлбартай байдаг бөгөөд энэ нь буферийн халилт болон бусад хязгаараас гарсан хувилбаруудыг илрүүлэхийн тулд GCC 10-д эмхэтгэсэн үед илүү сайн анхааруулга үүсгэх боломжийг олгодог.
  • Линукс системүүдийн хувьд pthread_attr_setsigmask_np болон функцууд
    pthread_attr_getsigmask_np нь программд pthread_create ашиглан үүсгэсэн хэлхээнд дохионы маск зааж өгөх боломжийг олгодог.

  • Юникод 13.0.0 тодорхойлолтыг дэмжихийн тулд кодчилолын өгөгдөл, тэмдэгтийн төрлийн мэдээлэл, галиглах хүснэгтүүд шинэчлэгдсэн;
  • Шинэ толгой файл нэмсэн , энэ нь __libc_single_threaded хувьсагчийг тодорхойлдог бөгөөд үүнийг нэг урсгалтай оновчлолын програмуудад ашиглаж болно.
  • Дохионы товчилсон нэр, тайлбарыг буцаадаг sigabbrev_np болон sigdescr_np функцуудыг нэмсэн (жишээ нь, SIGHUP-д зориулсан "HUP" болон "Hangup").
  • Алдааны нэр, тайлбарыг буцаадаг strerrorname_np болон strerrordesc_np функцуудыг нэмсэн (жишээ нь, EINVAL-д "EINVAL" болон "Хүчингүй аргумент").
  • ARM64 платформын хувьд "--enable-standard-branch-protection" туг (эсвэл GCC-д -mbrach-protection=стандарт) нэмэгдсэн бөгөөд энэ нь ARMv8.5-BTI (Салбарын зорилтот үзүүлэлт) механизмыг идэвхжүүлдэг. хийгдэх ёсгүй командын багцын гүйцэтгэл.салбарласан шилжилт. Кодын дурын хэсэг рүү шилжих шилжилтийг хаах нь буцах хандлагатай програмчлалын техник (ROP - Return-Oriented Programming; халдагчид өөрийн кодыг санах ойд байрлуулахыг оролддоггүй, харин аль хэдийн байгаа хэсгүүд дээр ажилладаг) ашиглах гаджетуудыг бий болгохоос урьдчилан сэргийлэх зорилгоор хэрэгжүүлдэг. Хүссэн функцийг олж авахын тулд дуудлагын гинжин хэлхээг бий болгосон буцах хяналтын зааварчилгаагаар төгсдөг машины заавар).
  • "--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 болон _thesys_nerr гэсэн тэмдэгтүүд, hesys_nerr, hesys_sys_nerr-ыг урьдчилан тохируулсан.
  • ldconfig нь анхдагчаар 20 жилийн турш glibc-д дэмжигдсэн шинэ ld.so.cache форматыг ашиглахаар шилжсэн.
  • Эмзэг байдлыг зассан:
    • CVE-2016-10228 – Буруу олон байт өгөгдлийг боловсруулах үед “-c” сонголттой ажиллах үед iconv хэрэгсэл дэх давталт үүсдэг.
    • CVE-2020-10029 Тригонометрийн функцийг псевдо хоосон аргументаар дуудах үед стекийн эвдрэл.
    • CVE-2020-1752 - Замууд дахь гэрийн лавлах (“~хэрэглэгч”)-ийн лавлагааг өргөтгөх үед glob функцэд санах ойн дараа үнэгүй ашиглах хандалт.
    • CVE-2020-6096 – ARMv7 платформ дээр memcpy() болон memmove() дахь сөрөг параметрийн утгуудыг буруу зохицуулсан нь хуулсан талбайн хэмжээг тодорхойлдог. Зөвшөөрнө memcpy() болон memmove() функцэд тодорхой хэлбэрээр форматлагдсан өгөгдлийг боловсруулахдаа кодын гүйцэтгэлийг зохион байгуулна. Асуудал байгаа нь чухал юм үлдсэн Мэдээллийг олон нийтэд ил болгосноос хойш бараг хоёр сар, Glibc-ийн хөгжүүлэгчдэд мэдэгдснээс хойш таван сарын турш засвар хийгээгүй.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх