SĂŒsteemi raamatukogu Glibc 2.41 vĂ€ljaanne

Kuue kuu arendustöö jÀrel on vÀlja antud GNU C Library (glibc) versioon 2.41, mis jÀrgib tÀielikult ISO C11 ja POSIX.1-2017 standardite nÔudeid. Uue versiooni loomises osales 79 arendajat.

Glibc 2.41 realiseeritud tÀiustustest vÔib vÀlja tuua:

  • Linuxi platvormile on lisatud uued funktsioonid sched_setattr ja sched_getattr, mille kaudu on vĂ”imalik seadistada/loodud ĂŒlesande planeerimise parameetreid. Praktikas vĂ”imaldavad funktsioonid seadistada ĂŒlesannete planeerimispoliitikaid, nagu SCHED_DEADLINE, kus kasutatakse tĂ€iendavaid parameetreid, peale prioriteedi.
  • Iconvi utiliiti on lisatud kohapealse kodeerimise konverteerimise tugi (kui sisend- ja vĂ€ljundfailide nimed kattuvad, loob iconv nĂŒĂŒd automaatselt ajutise faili ja pĂ€rast konverteerimise lĂ”petamist asendab selle algse faili).
  • Pealkirjafaili math.h on lisatud trigonomeetrilised funktsioonid, mis ilmusid C23 standardis (TS 18661-4:2015): acospi, asinpi, atan2pi, atanpi, cospi, sinpi ja tanpi.
  • CORE-MATH projektist on ĂŒle kantud optimeeritud ja Ă”iget ĂŒmardamist kasutavad funktsioonid: exp10m1f, exp2m1f, expm1f, log10f, log2p1f, log1pf, log10p1f, cbrtf, erff, erfcf, lgammaf, tgammaf, tanf, acosf, acoshf, asinf, asinhf, atanf, atan2f, atanhf, coshf, sinhf ja tanhf.
  • Lisatud ARM64 GCS (Guarded Control Stack) toe tugi, mis pakub riistvaralist kaitset funktsioonide tagasituleku aadresside vastu ja blokeerib ROP (Return-Oriented Programming) meetodeid, mille puhul kasutatakse juba olemasolevaid masiiniliste kĂ€skude osi, mis lĂ”ppevad tagastamiskĂ€suga. ARM64 GCS vĂ”imaldab kasutada kasutajaruumi protsesside kaitseks varjatud steki tehnikat (shadow stack) — pĂ€rast funktsiooni juhtimise edastamist salvestab protsessor tagastusaadressid mitte ainult tavalises stekis, vaid ka eraldi varjatud stekis, mida ei saa otse muuta. Enne funktsioonist lahkumist toimetatakse tagastusaadress varjatud stekist vĂ€lja ja vĂ”rreldakse peastekiga saadud tagastusaadressiga. Glibci koostamiseks GCS toe toetamiseks on vajalik vĂ€hemalt binutils versioon 2.44 ja GCC 15.
  • Tehtud on suur töö koodi genereerimise ja matemaatiliste funktsioonide jĂ”udluse parandamiseks ARM64/AArch64 arhitektuurile. Optimeerimised on ellu viidud vektorinstruktsioonide (SVE, skaleeritavad vektori laiendid) ja SIMD-laienduste (Neon) kasutamisega.
  • ARM64/AArch64 protsessoritega sĂŒsteemidesse on lisatud mĂ€lu kaitse vĂ”tmete mehhanismi tugi, mida kasutatakse mĂ€lu lehtede juurdepÀÀsu piiramiseks ilma mĂ€lu lehtede tabelit muutmata.
  • PowerPC64 protsessoritega sĂŒsteemidesse on lisatud laiendatud juhiseid, mis kaitsevad tagasipööramisprogrammeerimise kasutamise eest eksploitides.
  • Uue arhitektuuri tĂŒĂŒp arch_kind_hygon on lisatud Hiina x86-64 protsessoritele Hygon, mis on loodud AMD tehnoloogiate pĂ”hjal.
  • Testikogumik glibc jaoks on oluliselt laiendatud, testide arv on vĂ”rreldes eelmise vĂ€ljaandega suurenenud 5408-lt 6232-le.
  • Glibc kokkupaneku testimise vĂ”imalus on lisatud, kasutades C ja C++ kompilaatoreid, mis erinevad nendest, mida on kasutatud tegeliku kokkupaneku jaoks. NĂ€iteks 'configure TEST_CC="gcc-6.4.1" TEST_CXX="g++-6.4.1"' ja 'configure TEST_CC="clang" TEST_CXX="clang++"'.
  • Failis /etc/resolv.conf ja keskkonnamuutuja RES_OPTIONS mÀÀratud valikutes on rakendatud vĂ”imalus kasutada eel-tingimust «-» varasemalt mÀÀratud valiku kustutamiseks selle nimega. NĂ€iteks, kui failis /etc/resolv.conf on mÀÀratud «options no-aaaa», siis protsessi kĂ€ivitamisel, kus keskkonnamuutuja on «RES_OPTIONS=-no-aaaa», tĂŒhistatakse DNS-pĂ€ringute tegemise keeld AAAA kirje saamiseks.
  • DNS-resolvooris on lisatud toetus valikule «strict-error», mille korral funktsioon getaddrinfo(), kui aadressitĂŒĂŒp (AF_UNSPEC) ei ole selgelt mÀÀratud, proovib saada A (IPv4) ja AAAA (IPv6) kirjeid teiselt DNS-serverilt, kui A vĂ”i AAAA kirje pĂ€ring esimesele DNS-serverile lĂ”peb veaga. Ilma «strict-error» mÀÀramata tagastatakse sellisel juhul aadress, mis saadi edukalt töödeldud pĂ€ringust, ja ebaĂ”nnestunud pĂ€ringu tulemus ignoreeritakse. NĂ€iteks, kui server tagastati «A» kirje, kuid tekkis viga «AAAA» pĂ€ringus, siis getaddrinfo ilma «strict-error» valikuta tagastab kohe ainult IPv4 aadressi, kuid «strict-error» valikuga proovib see pĂ€ringute kordamist teise DNS-serveri poole.
  • Kodeeringute andmed, sĂŒmbolite tĂŒĂŒpidest teave ja transliteratsiooni tabelid on uuendatud, et toetada Unicode 16.0.0 spetsifikatsiooni.
  • Lisatud makro „_ISOC2Y_SOURCE”, mis vĂ”imaldab aktiveerida C2Y standardi mustandi mÀÀratud funktsioonid. Samuti on selliseid funktsioone vĂ”imalik aktiveerida makro abil _GNU_SOURCE ja kompilaatori lippude kaudu („gcc -std=gnu2y”).
  • Töötavaid tööriistu benchtesti jaoks, et jĂ€lgida erinevate funktsioonide (peamiselt matemaatiliste) jĂ”udlust, on sisse viidud.
  • Lisatud seade glibc.rtld.execstack, mida saab kasutada, et selgelt keelata tĂ€itmiseks mĂ”eldud kausi kasutamine.
  • Toetatakse laiendatud ABI rseq (taastatavad jĂ€rjestused), mis pakub mehhanismi kiireks aatomseks protseduuride tĂ€itmiseks (kui protseduuri katkestab teine niit, siis olek lĂ€htestatakse ja tehakse uus katse tĂ€ita). Uues versioonis on rseq-s vĂ”imalik kasutada laiendatud funktsioone, mis puuduvad algses ABI-s, nĂ€iteks paralleelse tĂ€itmise identifikaatorid (mm_cid, mĂ€lu kaardistamise konkurentsi ID) ja NUMA sĂ”lme identifikaatorid (node_id).
  • Toetuse lĂ”petamine big-endian sĂŒsteemide ARC (arceb-linux-gnu) jaoks.
  • Parandatud haavatavus (CVE-2025-039), mis pĂ”hjustab mĂ€lupuhvri ĂŒlerahvastamise funktsiooni assert() tĂ€itmisel. Ülerahvastamine toimub siis, kui programmile nime (argv[0]) antakse liiga suur. Probleemi peetakse mitteohtlikuks, kuna puhvri piiridest kirjutatakse vĂ€lja 4 baiti, mille sisu ei suuda rĂŒndaja kontrollida. Eriti huvitav on, et vead esinevad tĂ”rkeotsingu funktsioonides, mis tulenevad praeguse rakenduse nime vĂ€ljastamise veast.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster