Π‘Π»Π΅Π΄ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° GNU C Library (glibc) 2.35, ΠΊΠΎΡΡΠΎ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ ISO C11 ΠΈ POSIX.1-2017. Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡ 66 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
ΠΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² Glibc 2.35, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π»ΠΎΠΊΠ°Π» C.UTF-8, ΠΊΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ Unicode ΠΊΠΎΠ΄ΠΎΠ²Π΅, Π½ΠΎ Π·Π° ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π½Π° ΠΌΡΡΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ASCII Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ fnmatch, regexec ΠΈ regcomp. ΠΠΎΠΊΠ°Π»ΡΡ Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 400 ΠΠ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 346 ΠΠ ΡΠ° Π΄Π°Π½Π½ΠΈ LC_CTYPE Π·Π° Unicode ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ (Π½Π΅ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° Π² Glibc).
- ΠΠ°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Π·Π° ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Unicode 14.0.0.
- Π
- Π
- Π
- ΠΠ° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ exp10 Π² Π·Π°Π³Π»Π°Π²Π½ΠΈΡ ΡΠ°ΠΉΠ» ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅.
- Π Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ°ΠΊΡΠΎΡ _PRINTF_NAN_LEN_MAX, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° ISO C2X.
- Π ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ printf ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° "%b" ΠΈ "%B" Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅.
- Π ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ DSO, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π½ΠΎ ΡΡΡΡΠ΅Π½Π΅ (DFS) Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ° ΠΈΠ·Π±ΠΎΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ DSO Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ glibc.rtld.dynamic_sort, Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ "1" Π·Π° Π²ΡΡΡΠ°Π½Π΅ ΠΊΡΠΌ ΡΡΠ°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ.
- Π ABI Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ β__memcmpeqβ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° βmemcmpβ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, Π²ΡΡΠ½Π°ΡΠ° ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°ΡΡΡΠ° Π½Π° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΡΠΎΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΏΠΎΠ²ΠΈΠΊ rseq (restartable sequences), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 4.18. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΡ ΠΏΠΎΠ²ΠΈΠΊ rseq ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΠ°Π·ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΡΡΠΏΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΡΡΠ°Π²Π°Π½ΠΎ ΠΈ ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² Π³ΡΡΠΏΠ°ΡΠ°. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ ΠΎΡ Π΄ΡΡΠ³ ΠΏΠΎΡΠΎΠΊ ΡΠ΅ Π°Π½ΡΠ»ΠΈΡΠ°Ρ ΠΈ ΠΎΠΏΠΈΡΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ Π²ΡΠ·ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° /usr/bin/ld.so.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π² ΡΠ΅ΠΆΠΈΠΌ PIE (ΠΎΠ±Π΅Π·Π²ΡΠ΅Π΄Π΅Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠ°). ΠΠ° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° ΠΎΠΏΡΠΈΡΡΠ° ββdisable-default-pieβ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° glibc.malloc.hugetlb Π·Π° Linux, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° malloc Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΏΠΎΠ²ΠΈΠΊ madvise Ρ ΡΠ»Π°Π³Π° MADV_HUGEPAGE Π·Π° mmap ΠΈ sbrk ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ ΡΡΠ΅Π· ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ»Π°Π³Π° MAP_HUGETLB Π² ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° mmap. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π°ΠΊΠΎ Transparent Huge Pages ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΡΠ΅ΠΆΠΈΠΌ madvise, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ (Huge Pages).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° _dl_find_object, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΠΊΠ° ΠΎΡ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ (unwind).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° OpenRISC (or1k-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 (Memory Protection Extensions), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΡΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈΡΠ΅ Ρ ΠΏΠ°ΠΌΠ΅Ρ (ΠΏΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π½Π΅ ΡΠ΅ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΡΠ΅ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΠΎΡ GCC ΠΈ LLVM), Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
- ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡΡ prelink ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° 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
