Efter seks måneders udvikling offentliggjort frigivelse af systembibliotek GNU C bibliotek (glibc) 2.32, som fuldt ud overholder kravene i ISO C11 og POSIX.1-2017 standarder. Den nye udgivelse indeholder rettelser fra 67 udviklere.
Fra dem implementeret i Glibc 2.32 forbedringer du kan bemærke:
Tilføjet understøttelse af Synopsys ARC HS (ARCv2 ISA) processorer. Porten kræver mindst binutils 2.32, gcc 8.3 og Linux-kerne 5.1 for at køre. Tre ABI-varianter understøttes: arc-linux-gnu, arc-linux-gnuhf og arceb-linux-gnu (big-endian);
Indlæsning af revisionsmoduler specificeret i afsnit DT_AUDIT og
DT_DEPAUDIT af den eksekverbare fil.
For powerpc64le-arkitekturen er understøttelse af den lange dobbelte IEEE128-type implementeret, som er aktiveret, når der bygges med "-mabi=ieeelongdouble" muligheden.
Nogle API'er er annoteret med GCC 'access'-attributten, som gør det muligt at generere bedre advarsler, når de kompileres i GCC 10 for at detektere mulige bufferoverløb og andre out-of-bounds-scenarier.
For Linux-systemer er funktionerne pthread_attr_setsigmask_np og
pthread_attr_getsigmask_np, som giver applikationen mulighed for at angive en signalmaske for tråde oprettet ved hjælp af pthread_create.
Kodningsdata, tegntypeoplysninger og translitterationstabeller er blevet opdateret for at understøtte Unicode 13.0.0-specifikationen;
Tilføjet ny header-fil , som definerer variablen __libc_single_threaded, som kan bruges i applikationer til enkelttrådede optimeringer.
Tilføjede funktioner sigabbrev_np og sigdescr_np, der returnerer det forkortede navn og beskrivelse af signalet (for eksempel "HUP" og "Hangup" for SIGHUP).
Tilføjede funktioner strerrorname_np og strerrordesc_np, der returnerer navnet og beskrivelsen af fejlen (for eksempel "EINVAL" og "Ugyldigt argument" for EINVAL).
Til ARM64-platformen er der tilføjet et "--enable-standard-branch-protection"-flag (eller -mbranch-protection=standard i GCC), som gør det muligt for ARMv8.5-BTI (Branch Target Indicator) mekanismen at beskytte udførelse af instruktionssæt, der ikke bør udføres forgreningsovergange. Blokering af overgange til vilkårlige sektioner af kode er implementeret for at forhindre oprettelsen af gadgets i udnyttelser, der bruger returorienterede programmeringsteknikker (ROP - Return-Oriented Programming; angriberen forsøger ikke at placere sin kode i hukommelsen, men opererer på allerede eksisterende stykker af maskininstruktioner, der ender med en returkontrolinstruktion, hvorfra der bygges en kæde af opkald for at opnå den ønskede funktionalitet).
En større oprydning af forældede funktioner er blevet udført, herunder fjernelse af "--enable-obsolete-rpc" og "--enable-obsolete-nsl", header-fil . Funktionerne sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore og sigset, arrays sys_siglist, _sys_siglist og sys_sigabbrev, symbolerne sys_errlist, _sys_errlist, sys_nerr og _sys_nerr, og NSS-modulet hecsiod er blevet afviklet.
ldconfig er som standard blevet flyttet til at bruge det nye ld.so.cache-format, som har været understøttet i glibc i næsten 20 år.
Sårbarheder rettet:
CVE-2016-10228 – En løkke i iconv-værktøjet opstår, når den køres med "-c"-indstillingen, når der behandles forkerte multi-byte-data.
CVE-2020-10029 Stakkorruption ved opkald af trigonometriske funktioner med et pseudo-nul-argument.
CVE-2020-1752 - En brug-efter-fri hukommelsesadgang i glob-funktionen ved udvidelse af en reference til hjemmemappen ("~bruger") i stier.
CVE-2020-6096 – Forkert håndtering på ARMv7-platformen af negative parameterværdier i memcpy() og memmove(), som bestemmer størrelsen af det kopierede område. Giver organisere kodeudførelse ved behandling af data formateret på en bestemt måde i funktionerne memcpy() og memmove(). Det er væsentligt, at problemet forblev ukorrigeret i næsten to måneder siden oplysningerne blev offentliggjort og fem måneder siden Glibc-udviklerne blev underrettet.