Glibc 2.35 tulee sisältäen parannuksia, virheenkorjauksia ja paljon muuta

Kuuden kuukauden kehitystyön jälkeen Glibc 2.35:n uuden version julkaisu julkistettiin missä sisältää korjauksia 66 kehittäjältä ja toteutetuista parannuksista voimme huomata, että lisätty tuki "C.UTF-8"-alueelle, joka sisältää lajittelut kaikille Unicode-koodeille, mutta rajoittuu ASCII-alueiden käyttöön fnmatch-, regexec- ja regcomp-funktioissa tallentamiseen. tilaa.

Kieli-asetus on noin 400 kt, josta 346 kt on Unicoden LC_CTYPE-tietoja, ja se on asennettava erikseen (ei sisäänrakennettuna Glibciin). Koodaustiedot, merkkityyppitiedot ja translitterointitaulukot on päivitetty tukemaan Unicode 14.0.0 -spesifikaatiota.

Toinen erottuva muutos on se Y toteuttaa funktioita ja makroja, jotka pyöristävät tuloksen kapeampaan tyyppiin, Sen lisäksi, että toteutetaan funktioita ja makroja IEEE 754-2019 -spesifikaatiossa kuvattujen float-, long double-, _FloatN- ja _FloatNx-tyyppisten liukulukujen minimi- ja enimmäismäärän löytämiseksi.

toimintoja varten exp10, vastaavat makrot lisätään otsikkotiedostoon, joita ei ole sidottu tiettyihin tyyppeihin, ja _PRINTF_NAN_LEN_MAX-makro lisättiin , ehdotetaan ISO C2X -standardin luonnoksessa.

Dynaaminen linkitysjärjestelmä toteuttaa uuden luokittelualgoritmin DSO syvähakulla (DFS) tehokkuusongelmien ratkaisemiseksi silmukkariippuvuuksia käsiteltäessä. DSO-lajittelualgoritmin valitsemiseksi ehdotetaan parametria glibc.rtld.dynamic_sort, joka voidaan asettaa arvoon "1" palatakseen edelliseen algoritmiin.

Sen lisäksi lisätty tuki uudelle funktiolle '__memcmpeq' ABI:lle, jota kääntäjät käyttävät optimoimaan `memcmp':n käyttöä, kun tämän funktion palautusarvoa käytetään vain toiminnon valmistumistilan tarkistamiseen.

The automaattisen langan rekisteröinnin tuki käyttämällä rseq (uudelleenkäynnistettävät sekvenssit) järjestelmäkutsua, joka on toimitettu Linux-ytimen versiosta 4.18 lähtien. rseq-järjestelmäkutsu mahdollistaa komentoryhmän jatkuvan suorittamisen järjestämisen jota ei keskeytetä ja se sitoo tuloksen ryhmän viimeisellä lauseella. Pohjimmiltaan se tarjoaa mahdollisuuden erittäin nopeaan atomien suorittamiseen toimintojen suorittamiseen, jotka puhdistetaan ja yritetään uudelleen, jos toinen säie keskeyttää.

Toisaalta se tarjoaa oletusarvoinen kokoelma kaikista suoritettavista tiedostoista sisäänrakennetuista ohjelmista ja testiohjelmistosta PIE (paikasta riippumaton suoritettava) -tilassa.

Voit poistaa tämän toiminnan käytöstä vaihtoehto "-disable-default-pie" on tarjolla, plus Linuxille, lisäsi glibc.malloc.hugetlb-asetuksen, jolla muutetaan malloc-toteutusta käyttämään madvise-järjestelmäkutsua MADV_HUGEPAGE-lipulla mmap:lle ja sbrk:lle, tai käyttämään suoraan suuria muistisivuja määrittämällä MAP_HUGETLB-lipun mmap-kutsuissa.

Ensimmäisessä tapauksessa suorituskykyä voidaan parantaa käyttämällä läpinäkyviä Huge Pages -sivuja madvise-tilassa, ja toisessa tapauksessa voit käyttää järjestelmän varaamia valtavia sivuja (Huge Pages).

On myös huomattava, että joitain haavoittuvuuksia korjattiin tässä uudessa versiossa:

  • CVE-2022-23218, CVE-2022-23219: Puskurin ylivuoto funktioissa svcunix_create ja clnt_create, joka johtuu tiedostonimiparametrin sisällön kopioimisesta pinoon tarkistamatta kopioitujen tietojen kokoa. Sovelluksissa, jotka on rakennettu ilman pinosuojausta ja jotka käyttävät "unix"-protokollaa, haavoittuvuus voi johtaa haitallisen koodin suorittamiseen, kun käsitellään erittäin pitkiä tiedostonimiä.
  • CVE-2021-3998: realpath()-funktion haavoittuvuus, joka johtuu väärän arvon palauttamisesta tietyissä olosuhteissa, jotka sisältävät pinosta puhdistamatonta jäännösdataa. SUID-root fusermount -ohjelman haavoittuvuutta voidaan käyttää luottamuksellisten tietojen hankkimiseen prosessimuistista, esimerkiksi osoitintietojen saamiseksi.
  • CVE-2021-3999: yksitavuinen puskurin ylivuoto getcwd()-funktiossa. Ongelman aiheuttaa virhe, joka on ollut olemassa vuodesta 1995. Voit kutsua ylivuotoa erillisessä liitospisteen nimiavaruudessa soittamalla chdir() -hakemistossa "/".

Vihdoin Jos haluat tietää enemmän siitä, voit tarkistaa yksityiskohdat seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.