Udgivelsen af systembiblioteket Glibc 2.42 og værktøjssættet GNU Binutils 2.45

Efter seks måneders udvikling er versionen af systembiblioteket GNU C Library 2.42 (glibc) offentliggjort, som fuldt ud overholder kravene i ISO C23 og POSIX.1-2024 standarderne. 70 udviklere har deltaget i arbejdet med den nye version.

Blandt de forbedringer, der er implementeret i Glibc 2.42, kan nævnes:

  • Funktionen pthread_create har fået tilføjet support for letvægts beskyttelsessider for stakken (stack guard page), som vil forårsage en undtagelse og en kritisk procesafslutning (SIGSEGV), hvis der forsøges at tilgå dem. Implementeringen er baseret på flaget MADV_GUARD_INSTALL, der blev introduceret i systemopkaldet madvise og understøttes fra Linux-kernen 6.13. Sammenlignet med mapping i PROT_NONE tilstand gør beskyttelsessider det muligt mere effektivt at blokere for kodeudførelse uden for det tildelte hukommelsesområde, da oprettelsen ikke kræver tildeling af et nyt virtuelt hukommelsesområde.
  • Der er tilføjet nye funktioner til eksponentiation og beregning af rødder compoundn, pown og powr, rootn og rsqrt, som er defineret i ISO C23 standarden og er afspejlet i header-filen math.h. Varianter af funktionerne er implementeret for typerne float, double, long double, _FloatN og _FloatNx samt for den generiske type fra tgmath.h.
  • På Linux-platformen er funktionen pthread_gettid_np blevet implementeret, som ligesom funktionen gettid() returnerer et unikt tråd-ID, men som adskiller sig ved at have udvidet fejlkontrol (hvis der opstår udefineret adfærd, afsluttes processen).
  • Der er tilføjet funktioner til beregning af absolutte værdier, der arbejder med unsigned typer: uabs, ulabs, ullabs og uimaxabs. Disse funktioner vil indgå i den kommende C standard.
  • På Linux-platformen er der i API'en termios.h implementeret support for vilkårlige transmissionshastigheder. Typen speed_t er redefineret og svarer nu til typen 'unsigned int', som i Linux-kernen.
  • I lokal cache for tråde (tcache), der anvendes i malloc funktionen, er der tilføjet support til caching af store hukommelsesblokke. Den maksimale blokkstørrelse kan justeres via indstillingen glibc.malloc.tcache_max, som kan tage værdier op til 4194304. Cache-ydelsen for små blokke er blevet forbedret.
  • I byggescriptet configure er der tilføjet en mulighed "--enable-sframe", som aktiverer understøttelse af SFrame-formatet, der anvendes til at returnere oplysninger om stakspor og understøttes af backtrace-funktionen. For at benytte SFrame kræves minimum version binutils 2.45.
  • Fra CORE-MATH-projektet er der flyttet optimerede versioner af de matematiske funktioner acospif, asinpif, atanpif, atan2pif, cospif, sinpif og tanpif.
  • Testmængden er betydeligt udvidet, og dækker nu arbejdet med forskellige varianter af printf- og scanf-familien af funktioner.
  • Kode til identifikation af Intel-processorer baseret på mikroarkitekturerne Arrow Lake, Panther Lake, Clearwater Forest og Diamond Rapids er blevet tilføjet.
  • Understøttelse af z17-platformen (den nye generation af IBM Z/S390 mainframes) er blevet tilføjet.
  • I opsætningen af glibc.rtld.execstack er der tilføjet understøttelse af kompatibilitetsmode for at støtte programmer, der kræver en eksekverbar stak via dynamisk indlæste biblioteker.
  • Header-filen termio.h og definitionen af strukturen termio er blevet fjernet fra sys/ioctl.h. Programmeringsgrænsefladen termio.h blev erklret som forældet i POSIX.1 (1988) og er blevet erstattet af termios.h.
  • Det kræves nu minimum versioner af GCC 12.1 og GNU Binutils 2.39 for at bygge Glibc.
  • Sårbarheder udbedret:
    • CVE-2025-0395 — buffer-overløb under udførelsen af assert()-funktionen. Overløbet opstår, når der angives et for langt programnavn (argv[0]). Problemet betragtes som ikke-kritisk, da der skrives 4 byte uden for bufferen, hvis indholdet ikke kan kontrolleres af en angriber. Herefter er det interessante selve det, at der findes en sårbarhed i debug-funktionerne, som stammer fra en fejl i visningen af det aktuelle applikationsnavn.
    • CVE-2025-5702, CVE-2025-5745 — sårbarheder i implementeringen af strcmp- og strncmp-funktionerne for Power10-processorer, som fører til fejl ved lagring og genopretning af vektorresterne v20-v31, der skal bevares mellem funktionsopkald. Sårbarheden kan udnyttes til at overskrive eller bestemme indholdet af de data, der bruges af disse registre.
    • CVE-2025-8058 — sårbarhed i regcomp-funktionen, som fører til dobbelt frigivelse af hukommelse (double-free).

Der kan desuden nævnes udgivelsen af systemsamlingen GNU Binutils 2.45, som inkluderer programmer som GNU linker, GNU assembler, nm, objdump, strings, strip.

I den nye version af Binutils:

  • I GNU assembler:
    • Support for the latest extensions for RISC-V, LoongArch, and AArch64 architectures has been added. For x86, support for the XMODX instructions implemented in Zhaoxin PadLock processors has been introduced. For RISC-V, support for the instructions ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0, sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0, zilsd v1.0, zclsd v1.0, smrnmi v1.0, xtheadvdot v1.0, xmipscbop v1.0, xmipscmov v1.0, xmipsexectl v1.0, and xmipslsp v1.0 has been added.
    • Compatibility for generating data in SFrame format according to the SFrame V2 specification has been ensured. Support for generating stack trace information (.sframe) from CFI directives on 64-bit s390 systems (s390x) has been added.
    • Support for the .errif and .warnif directives for outputting diagnostic messages under certain conditions has been added.
  • In the linker, support for an optional argument in the '—stats' option has been implemented, through which a filename can be specified for saving resource consumption information at different stages of linking. The filename can also be specified using the environment variable LD_STATS. For RISC-V systems, support for new PLT (Procedure Linkage Table) formats has been added to the linker.
  • Various improvements related to SFrame support have been made. Functions for working with SFrame have been moved to the versioned library libsframe.so.2.
  • Support for the RISC-V architecture has been extended in the disassembler and the readelf utility.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster