Π‘Π»Π΅Π΄ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° GNU C Library (glibc) 2.35, ΠΊΠΎΡΡΠΎ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ ISO C11 ΠΈ POSIX.1-2017. ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡ 66 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
ΠΡΠΊΠΎΠΈ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² Glibc 2.35, Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π»ΠΎΠΊΠ°Π»Π° "C.UTF-8", ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ Unicode ΠΊΠΎΠ΄ΠΎΠ²Π΅, Π½ΠΎ Π·Π° Π΄Π° ΡΠΏΠ΅ΡΡΠΈ ΠΌΡΡΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ASCII Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ fnmatch, regexec ΠΈ regcomp. ΠΠΎΠΊΠ°Π»ΡΡ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 400 KB, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 346 KB ΡΠ° LC_CTYPE Π΄Π°Π½Π½ΠΈ Π·Π° Unicode ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ (Π½Π΅ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° Π² Glibc).
- ΠΠ°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠΈΠΏΠ° Π·Π½Π°ΡΠΈ ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Π·Π° ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Unicode 14.0.0.
- IN Π ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΊΡΡΠ³Π»ΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π΄ΠΎ ΠΏΠΎ-ΡΠ΅ΡΠ΅Π½ ΡΠΈΠΏ: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafN, fMfmafNx, fMxfmafN ΠΈ fMxfmafNx. Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ TS 18661-1:2014, TS 18661-3:2015 ΠΈ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Π±ΡΠ΄Π΅ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡ ISO C2X C.
- IN Π Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π½Π° ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ Ρ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ float, long double, _FloatN ΠΈ _FloatNx, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° IEEE 754-2019 ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ ΡΠ΅ΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π±ΡΠ΄Π΅ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡ ISO C2X C: fmaximum, fmaximum_num , fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, fminimum_mag, fminimum_mag_num.
- IN Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ Π·Π° ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π° ΡΠΎΡΠ½ΠΎΡΡ: M_Ef, M_LOG2Ef, M_LOG10Ef, M_LN2f, M_LN10f, M_PIf, M_PI_2f, M_PI_4f, M_1_PIf, M_2_PIf, M_2_SQRTPIf, M_SQRT2f ΠΈ M_SQRT1_2f.
- ΠΠ° ΡΡΠ½ΠΊΡΠΈΠΈ exp10 Π² Π·Π°Π³Π»Π°Π²Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅.
- IN Π΄ΠΎΠ±Π°Π²ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ° _PRINTF_NAN_LEN_MAX, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ ISO C2X.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΠΎΡΠΌΠ°Ρ "%b" ΠΈ "%B" ΠΊΡΠΌ ΡΠ°ΠΌΠΈΠ»ΠΈΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ printf Π·Π° ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅.
- Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π²Π½Π΅Π΄ΡΡΠ²Π° Π½ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅, DSO, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΡΠ²ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π² Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π° (DFS) Π·Π° ΡΠΏΡΠ°Π²ΡΠ½Π΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Ρ ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° DSO, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ glibc.rtld.dynamic_sort, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° β1β, Π·Π° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΡΡΠ°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ.
- ABI Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ β__memcmpeqβ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° βmemcmpβ, Π°ΠΊΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, Π²ΡΡΠ½Π°ΡΠ° ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ rseq (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ Π·Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΎ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 4.18. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ rseq Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΡΡΠΏΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ²Π° ΠΈ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² Π³ΡΡΠΏΠ°ΡΠ°. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ, Π°ΠΊΠΎ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΈ ΠΎΡ Π΄ΡΡΠ³Π° Π½ΠΈΡΠΊΠ°, ΡΠ΅ ΠΏΠΎΡΠΈΡΡΠ²Π°Ρ ΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ ΠΎΡΠ½ΠΎΠ²ΠΎ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π½Π° Π²ΡΡΠ·ΠΊΠ° /usr/bin/ld.so.
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈΡ Π½Π°Π±ΠΎΡ Π² ΡΠ΅ΠΆΠΈΠΌ PIE (ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ»). ΠΠ° Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡΡΠ° β--disable-default-pieβ.
- ΠΠ° Linux Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° glibc.malloc.hugetlb, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° malloc Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ madvise Ρ ΡΠ»Π°Π³Π° MADV_HUGEPAGE Π·Π° mmap ΠΈ sbrk, ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ Ρ ΠΏΠ°ΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠΎΡΠΈ ΡΠ»Π°Π³Π° MAP_HUGETLB Π² mmap ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡ. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Transparent Huge Pages Π² ΡΠ΅ΠΆΠΈΠΌ madvise, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ (Huge Pages).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ _dl_find_object, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ°Π·Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΡΡΠ΅ΠΊΠ° Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° OpenRISC (ΠΈΠ»ΠΈ 1k-linux-gnu) Π² ΡΠ΅ΠΆΠΈΠΌ soft-float. ΠΠΎΡΡΡΡ ΠΈΠ·ΠΈΡΠΊΠ²Π° binutils 2.35, GCC 11 ΠΈ Linux ΡΠ΄ΡΠΎ ββ5.4.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ β--with-rtld-early-cflagsβ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ ΠΊΠΎΠ΄ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° epoll_pwait2, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ epoll_wait, ΠΊΠ°ΡΠΎ Π·Π°Π΄Π°Π²Π° Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Ρ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠΎΡΠ½ΠΎΡΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ posix_spawn_file_actions_addtcsetpgrp_np Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π½Π° ΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π·Π° Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ.
- ΠΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Ρ Glibc ΠΈ GCC 12+, Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ Π·Π°ΡΠΈΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ β_FORTIFY_SOURCE=3β, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΊΡΠΈΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² Π·Π°Π³Π»Π°Π²Π½ΠΈΡ ΡΠ°ΠΉΠ» string.h. Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° β_FORTIFY_SOURCE=2β ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° Intel MPX (ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π΅ ΠΏΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½Π° (ΡΠ°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π½Π΅ Π΅ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π° ΠΈ Π²Π΅ΡΠ΅ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΠΎΡ GCC ΠΈ LLVM).
- ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡΡ Π·Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° LD_TRACE_PRELINKING ΠΈ LD_USE_LOAD_BIAS ΡΠ° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ Π² Π±ΡΠ΄Π΅ΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
ΠΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ:
- CVE-2022-23218, CVE-2022-23219 β ΠΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅Ρ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ svcunix_create ΠΈ clnt_create, ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΎ ΠΎΡ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° Π² ΡΡΠ΅ΠΊΠ° Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π±Π΅Π· Π·Π°ΡΠΈΡΠ° Π½Π° ΡΡΠ΅ΠΊΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° βunixβ, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π°ΡΠ°ΠΊΡΠ²Π°Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΠ»Π³ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- CVE-2021-3998 Π΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° realpath() ΠΏΠΎΡΠ°Π΄ΠΈ Π²ΡΡΡΠ°Π½Π΅, ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠ° Π½Π΅ΠΏΠΎΡΠΈΡΡΠ΅Π½ΠΈ ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΡΠ΅ΠΊΠ°. ΠΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° SUID-root fusermount ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
- CVE-2021-3999 - ΠΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π΅Π΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ² Π±ΡΡΠ΅Ρ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° getcwd(). ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½ ΠΎΡ Π³ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΎΡ 1995 Π³. ΠΠ° Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡΠ΅ chdir() Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° "/" Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru