Glibc 2.32 System Library Release

Etter seks måneder med utvikling publisert utgivelse av systembibliotek GNU C bibliotek (glibc) 2.32, som fullt ut oppfyller kravene i ISO C11- og POSIX.1-2017-standardene. Den nye utgivelsen inkluderer rettelser fra 67 utviklere.

Fra de implementert i Glibc 2.32 forbedringer du kan merke:

  • Lagt til støtte for Synopsys ARC HS (ARCv2 ISA) prosessorer. Porten krever minst binutils 2.32, gcc 8.3 og Linux-kjerne 5.1 for å kjøre. Tre ABI-varianter støttes: arc-linux-gnu, arc-linux-gnuhf og arceb-linux-gnu (big-endian);
  • Lasting av revisjonsmoduler spesifisert i avsnitt DT_AUDIT og
    DT_DEPAUDIT av den kjørbare filen.

  • For powerpc64le-arkitekturen er støtte for den lange doble typen IEEE128 implementert, som er aktivert når du bygger med alternativet "-mabi=ieeelongdouble".
  • Noen API-er er annotert med GCC 'access'-attributtet, som gjør det mulig å generere bedre advarsler når de kompileres i GCC 10 for å oppdage mulige bufferoverløp og andre scenarier utenfor grensene.
  • For Linux-systemer er funksjonene pthread_attr_setsigmask_np og
    pthread_attr_getsigmask_np, som gir applikasjonen muligheten til å spesifisere en signalmaske for tråder opprettet med pthread_create.

  • Kodingsdata, tegntypeinformasjon og translitterasjonstabeller er oppdatert for å støtte Unicode 13.0.0-spesifikasjonen;
  • Lagt til ny overskriftsfil , som definerer __libc_single_threaded-variabelen, som kan brukes i applikasjoner for enkelt-trådede optimaliseringer.
  • Tilførte funksjoner sigabbrev_np og sigdescr_np som returnerer det forkortede navnet og beskrivelsen av signalet (for eksempel "HUP" og "Hangup" for SIGHUP).
  • Lagt til funksjoner strerrorname_np og strerrordesc_np som returnerer navnet og beskrivelsen av feilen (for eksempel "EINVAL" og "Ugyldig argument" for EINVAL).
  • For ARM64-plattformen er det lagt til et "--enable-standard-branch-protection"-flagg (eller -mbranch-protection=standard i GCC), som gjør at ARMv8.5-BTI (Branch Target Indicator)-mekanismen kan beskytte utførelse av instruksjonssett som ikke skal utføres forgreningsoverganger. Blokkering av overganger til vilkårlige seksjoner av kode er implementert for å forhindre oppretting av gadgets i utnyttelser som bruker returorienterte programmeringsteknikker (ROP - Return-Oriented Programming; angriperen prøver ikke å plassere koden sin i minnet, men opererer på allerede eksisterende stykker av maskininstruksjoner som slutter med en returkontrollinstruksjon, hvorfra en kjede av anrop bygges for å oppnå ønsket funksjonalitet).
  • En større opprydding av utdaterte funksjoner har blitt utført, inkludert fjerning av "--enable-obsolete-rpc" og "--enable-obsolete-nsl" alternativene, overskriftsfil . Funksjonene sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore og sigset, arrayene sys_siglist, _sys_siglist og sys_sigabbrev, symbolene sys_errlist, _sys_errlist, sys_nerr og _sys_nerr, og NSS-modulen er deprecsiod.
  • ldconfig har blitt flyttet som standard til å bruke det nye ld.so.cache-formatet, som har blitt støttet i glibc i nesten 20 år.
  • Sårbarheter fikset:
    • CVE-2016-10228 – En løkke i iconv-verktøyet oppstår når du kjører med "-c"-alternativet når du behandler feil multi-byte-data.
    • CVE-2020-10029 Stabelkorrupsjon når du kaller trigonometriske funksjoner med et pseudo-null-argument.
    • CVE-2020-1752 - En bruk-etter-fri minnetilgang i glob-funksjonen når du utvider en referanse til hjemmekatalogen ("~bruker") i baner.
    • CVE-2020-6096 – Feil håndtering på ARMv7-plattformen av negative parameterverdier i memcpy() og memmove(), som bestemmer størrelsen på det kopierte området. Tillater organisere kjøring av kode når du behandler data formatert på en bestemt måte i funksjonene memcpy() og memmove(). Det er betydelig at problemet ble igjen ukorrigert i nesten to måneder siden informasjonen ble offentliggjort og fem måneder siden Glibc-utviklerne ble varslet.

Kilde: opennet.ru

Legg til en kommentar