Ar ôl chwe mis o ddatblygiad, mae llyfrgell system GNU C Library (glibc) 2.39 wedi'i rhyddhau, sy'n cydymffurfio'n llawn â gofynion safonau ISO C11 a POSIX.1-2017. Mae'r datganiad newydd yn cynnwys atgyweiriadau gan 67 o ddatblygwyr.
Mae rhai o’r gwelliannau a roddwyd ar waith yn Glbc 2.39 yn cynnwys:
- Mae cefnogaeth ar gyfer y pentwr cysgodol a gyflwynwyd yn y cnewyllyn wedi'i ddarparu. Linux 6.6, sy'n rhwystro llawer o gamfanteision trwy fanteisio ar alluoedd caledwedd proseswyr Intel i amddiffyn rhag trosysgrifo'r cyfeiriad dychwelyd o swyddogaeth rhag ofn gorlif byffer pentwr. Mae'r amddiffyniad hwn yn gweithio trwy storio cyfeiriadau dychwelyd nid yn unig ar y pentwr rheolaidd ond hefyd ar bentwr "cysgodol" ar wahân, na ellir ei addasu'n uniongyrchol, ar ôl trosglwyddo rheolaeth i swyddogaeth. Cyn gadael y swyddogaeth, caiff y cyfeiriad dychwelyd ei dynnu o'r pentwr cysgodol a'i gymharu â'r cyfeiriad dychwelyd o'r prif bentwr. Mae anghydweddiad yn y cyfeiriadau yn cynhyrchu eithriad, gan rwystro sefyllfaoedd lle mae camfanteisio wedi llwyddo i drosysgrifo cyfeiriad ar y prif bentwr. Ychwanegwyd yr opsiwn adeiladu "--enable-cet" i alluogi'r amddiffyniad hwn.
- Ychwanegwyd ffeil pennawd newydd , a ddiffinnir yn y safon ISO C2X drafft ac yn cynnwys y swyddogaethau stdc_leading_zeros, stdc_leading_ones, stdc_trailing_zeros, stdc_trailing_ones, stdc_first_leading_zero, stdc_first_leading_one, stdc_first_trailing_zerost_count, stdc_first_trailing_zero, stdc_first_leading_zero _ones, s_single_bit, stdc_bit_width, stdc_bit_floor a stdc_bit_ceil mewn amrywiadau gyda mathau “llog heb ei lofnodi”, “heb ei lofnodi byr", "unsigned int", "unsigned long int" a "unsigned long int".
- Ar gyfer platfform Linux Mae'r ffwythiannau posix_spawnattr_getcgroup_np a posix_spawnattr_setcgroup_np, yn ogystal â'r faner POSIX_SPAWN_SETCGROUP, wedi'u gweithredu. Mae'r rhain yn caniatáu gosod cgroupv2 mewn proses newydd gan ddefnyddio'r ffwythiannau posix_spawn a posix_spawnp, gan ddileu amodau ras. Estyniadau GNU yw'r ffwythiannau hyn ac mae angen y cnewyllyn arnynt i weithio. Linux gyda chefnogaeth galwadau system clone3.
- Ar gyfer platfform Linux Mae'r ffwythiannau pidfd_spawn a pidfd_spawp wedi'u gweithredu, sy'n debyg o ran semanteg i'r ffwythiant posix_spawn, ond nid dynodwr proses (PID) sy'n dychwelyd, ond disgrifiwr ffeil i'w ddefnyddio mewn ffwythiannau sy'n cefnogi'r mecanwaith PIDFD, fel pidfd_send_signal, poll, a waitid (mae PIDFD yn gysylltiedig â phroses benodol ac nid yw'n newid, tra gellir cysylltu PID â phroses arall ar ôl i'r broses gyfredol sy'n gysylltiedig â'r PID hwn derfynu).
- Ar gyfer platfform Linux Ychwanegwyd y ffwythiant pidfd_getpid i bennu'r dynodwr proses (PID) yn seiliedig ar y disgrifiwr ffeil proses (PIDFD) a ddychwelir gan y ffwythiannau pid_spawn, fork_np a pidfd_open.
- Mae'r addasydd maint "wN" wedi'i ychwanegu at y swyddogaethau teulu scanf, a ddefnyddir ar gyfer dadleuon o fathau intN_t, int_leastN_t, uintN_t ac uint_leastN_t. Er enghraifft, i ddarllen gwerthoedd degol gyda mathau int32_t ac int_least32_t, gallwch nodi "%w32d", a gellir pennu gwerthoedd hecsadegol fel "%w32x". Yn yr un modd, mae'r addasydd "wfN" wedi'i ychwanegu at y mathau int_fastN_t ac uint_fastN_t a gyflwynwyd yn y safon ISO C2X drafft.
- Ychwanegwyd y gosodiad “glibc.cpu.plt_rewrite”, sy'n galluogi ailysgrifennu'r PLT (Tabl Cyswllt Gweithdrefn) ar systemau x86-64, lle bydd y cysylltydd yn disodli canghennau anuniongyrchol yn y PLT â rhai uniongyrchol.
- Ychwanegwyd gosodiad "glibc.mem.decorate_maps" i ychwanegu gwybodaeth dyrannu cof ychwanegol (fel y stack edau a grëwyd gan pthread_create neu gof a ddyrennir trwy malloc).
- Mae'r strwythur "statvfs" bellach yn llenwi'r maes "f_type" gyda gwybodaeth am y math o system ffeiliau, sy'n cyfateb i gynnwys y maes yn y strwythur "statfs". Yn flaenorol, Linux Roedd y maes "f_type" bob amser yn cynnwys 0.
- Ar gyfer y platfform AArch64, mae anodiadau wedi'u hychwanegu at libmvec a math.h sy'n caniatáu, wrth nodi'r opsiwn “-ffast-math” wrth adeiladu, ddefnyddio fectoru galwadau wrth adeiladu yn GCC 9 a fersiynau mwy newydd o'r casglwr. Mae fectoreiddio wedi'i alluogi ar gyfer swyddogaethau mathemategol acos, acosf, asin, asinf, atan, atanf, atan2, atan2f, cos, cosf, exp, expf, exp10, exp10f, exp2, exp2f, expm1, expm1f, log, logf, log10, log10f, log1p , log1pf, log2, log2f, pechod, sinf, tan a tanf.
- Mae'r llyfrgell libcrypt a'r ffeil pennyn cysylltiedig wedi eu tynnu o'r pecyn " " Anogir datblygwyr cymwysiadau i newid i lyfrgelloedd amgen fel libxcrypt.
- Mae'r cyfleustodau ldconfig nawr yn hepgor ffeiliau gyda'r nod ';'. yn enw'r ffeil neu'n gorffen gyda “.dpkg.tmp” a “.dpkg.new”, sy'n eich galluogi i osgoi prosesu ffeiliau dros dro rheolwyr pecyn rpm a dpkg.
- Mae cefnogaeth i bensaernïaeth ia64 (ia64 * -*-linux-gnu), a ddefnyddir ym mhroseswyr Intel Itanium, wedi dod i ben.
- Gwendidau sefydlog:
- Mae CVE-2023-6246, CVE-2023-6779, CVE-2023-6780 yn wendidau hanfodol yn y swyddogaeth __vsyslog_internal(), sy'n caniatáu i un weithredu cod gyda breintiau uchel trwy driniaethau gyda lansiad cymwysiadau SUID.
- Mae CVE-2023-4911 yn agored i niwed yn Glibc ld.so sy'n eich galluogi i ennill breintiau gwraidd ar y system. Mae'r bregusrwydd oherwydd gwall yn y cod dosrannu llinyn a nodir yn y newidyn amgylchedd GLIBC_TUNABLES, a all arwain at ysgrifennu'r gwerth dosrannu y tu allan i ffiniau yn y byffer a neilltuwyd. Mae yna gampau gweithio.
- Mae CVE-2023-4806 yn agored i niwed di-ddefnydd yn y swyddogaeth getadrinfo. Mae'r broblem yn digwydd pan fydd yr ategyn NSS ond yn gweithredu'r galwadau "_gethostbyname2_r" a "_getcanonname_r" yn ôl, ond nid yw'n cefnogi'r alwad “_gethostbyname3_r”. Er mwyn manteisio ar y bregusrwydd, rhaid i'r gweinydd DNS ddychwelyd nifer fawr o gyfeiriadau IPv6 ac IPv4 ar gyfer y gwesteiwr y gofynnwyd amdano, a fydd yn arwain at ddamwain y broses a alwodd yn swyddogaeth getaddrinfo ar gyfer y teulu AF_INET6 pan fydd y baneri AI_CANONNAME, AI_ALL ac AI_V4MAPPED yn set.
- Mae CVE-2023-4527 yn agored i niwed yn y swyddogaeth getaddrinfo sy'n caniatáu i ddata gael ei ddarllen o ardal y tu allan i'r ffin byffer wrth brosesu ymateb DNS a dderbyniwyd dros TCP sy'n fwy na 2048 bytes. Mae'r bregusrwydd yn digwydd wrth ddefnyddio'r opsiwn "no-aaaa" yn /etc/resolv.conf.
Yn ogystal, gallwn nodi rhyddhau set o gyfleustodau system GNU Binutils 2.42, sy'n cynnwys rhaglenni fel GNU linker, GNU assembler, nm, objdump, strings, strip.
Yn y fersiwn newydd o Binutils:
- Mae opsiwn arbrofol "--scfi=arbrofol" wedi'i ychwanegu at y cydosodwr (nwy) ar gyfer systemau x86-64 i syntheseiddio lluniadau CFI (Control Llif Uniondeb) ar gyfer cod cydosod a ysgrifennwyd â llaw sy'n cyfateb i System V AMD64 ABI.
- Ychwanegwyd opsiwn "--extra-sym-info" i readelf i arddangos gwybodaeth estynedig am symbolau ("-symbols"), megis enw'r adran y mae'r mynegai st_shndx yn cyfeirio ati.
- Mae'r cyfleustodau objcopy yn darparu'r gallu i ddefnyddio'r opsiwn “-set-section-flags” gyda'r gwerth “mawr” i osod adran baner SHF_X86_64_LARGE ar gyfer gwrthrychau ELF ar systemau x86-64. Mae'r opsiwn “--visualize-jumps” yn gweithredu cefnogaeth ar gyfer pensaernïaeth s390.
- Wrth ddadosod cyfarwyddiadau s390, mae'r gallu i arddangos sylwadau yn y disgrifiad o gyfarwyddiadau wedi'i weithredu. I alluogi disgrifiadau, gallwch chi nodi'r opsiwn “-M insndesc” yn objdump, a'r opsiwn “set disassembler-options insndesc” yn gdb.
- Ychwanegwyd opsiynau "-z mark-plt" a "-z nomark-plt" i'r cysylltydd i farcio cofnodion yn y tabl PLT gan ddefnyddio'r tagiau DT_X86_64_PLT, DT_X86_64_PLTSZ a DT_X86_64_PLTENT.
- Ychwanegwyd cefnogaeth ar gyfer didoli o chwith i'r cysylltydd.
- Ychwanegwyd opsiynau "--warn-execstack-objects", "--error-execstack" a "--error-rxw-segments" i allbynnu rhybuddion neu wallau pan gânt eu defnyddio ar wrthrychau stac gweithredadwy.
- Mae cefnogaeth i ABI 2.30 o bensaernïaeth LoongArch wedi'i gweithredu, yn ogystal â chefnogaeth i gyfarwyddiadau newydd a ddiffinnir ym manyleb LoongArch 1.10.
- Cefnogaeth ychwanegol i'r set gyfarwyddiadau KVX a ddefnyddir mewn proseswyr Kalray (er enghraifft, a ddefnyddir yn SoC Coolidge).
- Ar gyfer systemau sy'n seiliedig ar bensaernïaeth Intel, mae cefnogaeth ar gyfer estyniadau wedi'i ychwanegu:
- Intel APX: 32 GPR, NDD, PUSH2/POP2, PUSHP/POPP.
- USER_MSR.
- AVX10.1.
- PBNDKB.
- SM4.
- SM3.
- SHA512.
- AVX-VNNI-INT16.
- Mae cefnogaeth ar gyfer estyniadau wedi'i ychwanegu at borthladd pensaernïaeth RISC-V:
- T-Pennaeth (XTheadVector, XTheadZvlsseg a XTheadZvamo).
- CORE-V (XCVmac, XCValu).
- SiFive VCIX (XSfVcp).
- Mae cefnogaeth ar gyfer estyniadau wedi'i ychwanegu at y porthladd ar gyfer pensaernïaeth AArch64:
- SVE2.1 (Estyniad Fector Scalable 2.1).
- SME2.1 (Estyniad Matrics Graddadwy 2.1).
- B16B16 (BFloat16 a BFloat16 ar gyfer SVE2 a SME2).
- RASv2 (Dibynadwyedd, Argaeledd a Defnyddioldeb v2).
- LSE128 (128-did Atomig).
- GCS (Stac Rheoli Gwarchodedig).
- CHK (Gwirio Statws Nodwedd).
- SPECRES2 (Cyfyngiad Dyfalu Gwell).
- LRCPC3 (Llwyth-Caffael RCpc).
- THE (Cyfieithiad Caledu).
- AGA (Cyfarwyddyd Trace).
- D128 (disgrifyddion tabl tudalen cof 128-bit).
- XS (priodoledd cof XS).
- Cefnogaeth ychwanegol ar gyfer proseswyr AArch64 Cortex-A520, Cortex-A720, Cortex-X3 a Cortex-X4.
- Er mwyn cydnawsedd â'r cydosodwr clang/LLVM, mae'r cydosodwr BPF wedi ychwanegu cefnogaeth ar gyfer gwahanu sylwadau gyda'r symbolau “#” a “//”, yn ogystal â defnyddio'r symbol “;” i wahanu ymadroddion o fewn llinell (";" ni ellir ei ddefnyddio mwyach ar gyfer sylwadau).
Ffynhonnell: opennet.ru
