Glibc 2.32 System Library Release

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.

Kilde: opennet.ru

Tilføj en kommentar