Glibc 2.32 System Library -julkaisu

Kuuden kuukauden kehitystyön jälkeen julkaistu järjestelmäkirjaston julkaisu GNU C -kirjasto (glibc) 2.32, joka täyttää täysin ISO C11- ja POSIX.1-2017 -standardien vaatimukset. Uusi julkaisu sisältää korjauksia 67 kehittäjältä.

Glibc 2.32:ssa toteutetuista parannuksia voit huomata:

  • Lisätty tuki Synopsys ARC HS (ARCv2 ISA) -prosessoreille. Portti vaatii vähintään binutils 2.32:n, gcc 8.3:n ja Linux-ytimen 5.1:n toimiakseen. Kolmea ABI-versiota tuetaan: arc-linux-gnu, arc-linux-gnuhf ja arceb-linux-gnu (big-endian);
  • Kohdissa DT_AUDIT ja määriteltyjen auditointimoduulien lataus
    Suoritettavan tiedoston DT_DEPAUDIT.

  • Powerpc64le-arkkitehtuurissa on toteutettu tuki IEEE128 long double -tyypille, joka on käytössä, kun rakennetaan "-mabi=ieeelongdouble"-vaihtoehdolla.
  • Jotkin sovellusliittymät on merkitty GCC:n pääsy-attribuutilla, mikä mahdollistaa parempien varoitusten luomisen, kun ne on käännetty GCC 10:ssä mahdollisten puskurin ylivuotojen ja muiden rajojen ulkopuolisten skenaarioiden havaitsemiseksi.
  • Linux-järjestelmissä funktiot pthread_attr_setsigmask_np ja
    pthread_attr_getsigmask_np, jotka antavat sovellukselle mahdollisuuden määrittää signaalimaskin säikeille, jotka on luotu komennolla pthread_create.

  • Koodaustiedot, merkkityyppitiedot ja translitterointitaulukot on päivitetty tukemaan Unicode 13.0.0 -spesifikaatiota.
  • Lisätty uusi otsikkotiedosto , joka määrittää __libc_single_threaded-muuttujan, jota voidaan käyttää yksisäikeisen optimoinnin sovelluksissa.
  • Lisätty funktiot sigabbrev_np ja sigdescr_np, jotka palauttavat signaalin lyhennetyn nimen ja kuvauksen (esimerkiksi "HUP" ja "Hangup" SIGHUPille).
  • Lisätty funktiot strerrorname_np ja strerrordesc_np, jotka palauttavat virheen nimen ja kuvauksen (esimerkiksi "EINVAL" ja "Virheellinen argumentti" EINVAL:lle).
  • ARM64-alustalle on lisätty "--enable-standard-branch-protection" -lippu (tai -mbranch-protection=standard GCC:ssä), jonka avulla ARMv8.5-BTI (Branch Target Indicator) -mekanismi suojaa käskyjoukkojen suorittaminen, joita ei pitäisi suorittaa Haaroittuvat siirtymät. Siirtymien estäminen mielivaltaisiin koodin osiin on toteutettu estämään gadgetien luominen hyväksikäytöissä, jotka käyttävät paluusuuntautuneita ohjelmointitekniikoita (ROP - Return-Oriented Programming; hyökkääjä ei yritä sijoittaa koodiaan muistiin, vaan toimii jo olemassa olevilla osilla konekäskyt, jotka päättyvät paluuohjauskäskyyn, josta rakennetaan kutsuketju halutun toiminnallisuuden saavuttamiseksi).
  • Vanhentuneiden ominaisuuksien suuri siivous on tehty, mukaan lukien otsikkotiedoston "--enable-obsolete-rpc" ja "--enable-obsolete-nsl" poistaminen. . Funktiot sstk, siginterrupt, sigpause, sighold, sigrelse, siggnore ja sigset, taulukot sys_siglist, _sys_siglist ja sys_sigabbrev, symbolit sys_errlist, _sys_errlist, N modulated the heprecsir, sys_ys_nerr ja
  • ldconfig on oletuksena siirretty käyttämään uutta ld.so.cache-muotoa, jota glibc on tuettu lähes 20 vuoden ajan.
  • Haavoittuvuudet korjattu:
    • CVE-2016-10228 – Iconv-apuohjelmassa esiintyy silmukka, kun se suoritetaan "-c"-vaihtoehdon kanssa, kun käsitellään virheellisiä monitavuisia tietoja.
    • CVE-2020-10029 Pinon korruptio kutsuttaessa trigonometrisiä funktioita pseudo-nolla-argumentilla.
    • CVE-2020-1752 - Vapaan käytön jälkeinen muistin käyttö glob-funktiossa laajennettaessa viittausta kotihakemistoon ("~user") poluissa.
    • CVE-2020-6096 – ARMv7-alustan negatiivisten parametriarvojen virheellinen käsittely memcpy()- ja memmove()-parametriarvoissa, mikä määrittää kopioitavan alueen koon. Sallii järjestää koodin suorittamisen, kun käsitellään tietyllä tavalla muotoiltuja tietoja memcpy()- ja memmove()-funktioissa. On merkittävää, että ongelma jäi korjaamaton lähes kahden kuukauden ajan siitä, kun tiedot julkistettiin, ja viisi kuukautta siitä, kun Glibc-kehittäjille ilmoitettiin.

Lähde: opennet.ru

Lisää kommentti