Glibc 2.32 System Library Release

Efter sex månaders utveckling publicerad systembiblioteksversion GNU C bibliotek (glibc) 2.32, som helt uppfyller kraven i standarderna ISO C11 och POSIX.1-2017. Den nya utgåvan innehåller korrigeringar från 67 utvecklare.

Från de implementerade i Glibc 2.32 förbättringar du kan notera:

  • Tillagt stöd för Synopsys ARC HS (ARCv2 ISA)-processorer. Porten kräver minst binutils 2.32, gcc 8.3 och Linux-kärna 5.1 för att köras. Tre ABI-varianter stöds: arc-linux-gnu, arc-linux-gnuhf och arceb-linux-gnu (big-endian);
  • Laddning av revisionsmoduler specificerade i avsnitt DT_AUDIT och
    DT_DEPAUDIT för den körbara filen.

  • För powerpc64le-arkitekturen implementeras stöd för den långa dubbeltypen IEEE128, vilket är aktiverat när man bygger med alternativet "-mabi=ieeelongdouble".
  • Vissa API:er är kommenterade med GCC-attributet "access", vilket gör att bättre varningar kan genereras när de kompileras i GCC 10 för att upptäcka eventuella buffertspill och andra out-of-bounds-scenarier.
  • För Linux-system, funktionerna pthread_attr_setsigmask_np och
    pthread_attr_getsigmask_np, som ger applikationen möjlighet att specificera en signalmask för trådar skapade med pthread_create.

  • Kodningsdata, teckentypsinformation och translitterationstabeller har uppdaterats för att stödja Unicode 13.0.0-specifikationen;
  • Lade till ny rubrikfil , som definierar variabeln __libc_single_threaded, som kan användas i applikationer för enkeltrådiga optimeringar.
  • Tillagda funktioner sigabbrev_np och sigdescr_np som returnerar det förkortade namnet och beskrivningen av signalen (till exempel "HUP" och "Hangup" för SIGHUP).
  • Lade till funktioner strerrorname_np och strerrordesc_np som returnerar namnet och beskrivningen av felet (till exempel "EINVAL" och "Ogiltigt argument" för EINVAL).
  • För ARM64-plattformen har en flagga "--enable-standard-branch-protection" lagts till (eller -mbranch-protection=standard i GCC), vilket gör att ARMv8.5-BTI-mekanismen (Branch Target Indicator) kan skydda exekvering av instruktionsuppsättningar som inte bör exekveras grenövergångar. Blockering av övergångar till godtyckliga sektioner av kod implementeras för att förhindra skapandet av prylar i exploits som använder returorienterade programmeringstekniker (ROP - Return-Oriented Programming; angriparen försöker inte placera sin kod i minnet, utan arbetar på redan existerande delar av maskininstruktioner som slutar med en returkontrollinstruktion, från vilken en kedja av samtal byggs upp för att erhålla önskad funktionalitet).
  • En stor rensning av föråldrade funktioner har utförts, inklusive borttagningen av alternativen "--enable-obsolete-rpc" och "--enable-obsolete-nsl", rubrikfil . Funktionerna sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore och sigset, arrayerna sys_siglist, _sys_siglist och sys_sigabbrev, symbolerna sys_errlist, _sys_errlist, sys_nerr och _sys_nerr, och NSS-modulen hecsiod har tagits bort.
  • ldconfig har flyttats som standard för att använda det nya ld.so.cache-formatet, som har stöds i glibc i nästan 20 år.
  • Sårbarheter fixade:
    • CVE-2016-10228 – En loop i iconv-verktyget uppstår när den körs med alternativet "-c" när felaktig multi-byte-data behandlas.
    • CVE-2020-10029 Stackkorruption vid anrop av trigonometriska funktioner med ett pseudo-null-argument.
    • CVE-2020-1752 - En användningsfri minnesåtkomst i globfunktionen när en referens till hemkatalogen ("~användare") utökas i sökvägar.
    • CVE-2020-6096 – Felaktig hantering på ARMv7-plattformen av negativa parametervärden i memcpy() och memmove(), som bestämmer storleken på det kopierade området. Tillåter organisera kodexekvering vid bearbetning av data formaterad på ett visst sätt i funktionerna memcpy() och memmove(). Det är betydande att problemet förblev okorrigerad i nästan två månader sedan informationen offentliggjordes och fem månader sedan Glibc-utvecklarna underrättades.

Källa: opennet.ru

Lägg en kommentar