ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GNU C Library (glibc) 2.39, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ISO C11 ΠΈ POSIX.1-2017. Π ΡΠΎΡΡΠ°Π² Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ 67 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠ· ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² Glibc 2.39 ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ:
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Π½Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° (shadow stack), ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ Π² ΡΠ΄ΡΠ΅ Linux 6.6 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΡΠ΅ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ° Π² ΡΡΠ΅ΠΊΠ΅. Π‘ΡΡΡ Π·Π°ΡΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π°Π΄ΡΠ΅ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅, Π½ΠΎ ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ «ΡΠ΅Π½Π΅Π²ΠΎΠΌ» ΡΡΠ΅ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ΅ΡΠ΅Π΄ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΅Π½Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠ²Π΅ΡΡΠ΅ΡΡΡ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°. ΠΠ΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΡΠΏΠ»ΠΎΠΈΡΡ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π°Π΄ΡΠ΅Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ «—enable-cet».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» <stdbit.h>, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π² ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ISO C2X ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ stdc_leading_zeros, stdc_leading_ones, stdc_trailing_zeros, stdc_trailing_ones, stdc_first_leading_zero, stdc_first_leading_one, stdc_first_trailing_zero, stdc_first_trailing_one, stdc_count_zeros, stdc_count_ones, stdc_has_single_bit, stdc_bit_width, stdc_bit_floor and stdc_bit_ceil Π² Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ «unsigned char», «unsigned short», «unsigned int», «unsigned long int» ΠΈ «unsigned long long int».
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Linux ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawnattr_getcgroup_np ΠΈ posix_spawnattr_setcgroup_np, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π°Π³ POSIX_SPAWN_SETCGROUP, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ cgroupv2 Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ posix_spawn ΠΈ posix_spawnp, ΠΈΡΠΊΠ»ΡΡΠΈΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ GNU ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΡΡ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ΄ΡΠ° Linux Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° clone3.
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Linux ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ pidfd_spawn ΠΈ pidfd_spawp, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ΅ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ posix_spawn, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° (PID), Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ PIDFD, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ pidfd_send_signal, poll ΠΈ waitid (PIDFD ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π² ΡΠΎΠΌ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ PID ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΡΠΈΠΌ PID).
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Linux Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ pidfd_getpid Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° (PID) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° (PIDFD), Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ pid_spawn, fork_np ΠΈ pidfd_open.
- Π ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° scanf Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° «wN», ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΡΠΈΠΏΠ°ΠΌΠΈ intN_t, int_leastN_t, uintN_t ΠΈ uint_leastN_t. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ int32_t ΠΈ int_least32_t ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ «%w32d», Π° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ — «%w32x». ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ «wfN» Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² int_fastN_t ΠΈ uint_fastN_t, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² ΡΠ΅ΡΠ½ΠΎΠ²ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ISO C2X.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° «glibc.cpu.plt_rewrite», Π²ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ PLT (Procedure Linkage Table) Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ x86-64 ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π·Π°ΠΌΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ (indirect branch) Π² PLT Π½Π° ΠΏΡΡΠΌΡΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° «glibc.mem.decorate_maps» Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎ ΡΡΠ΅ΠΊΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ pthread_create, ΠΈΠ»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠ΅Π· malloc).
- Π ΡΡΡΡΠΊΡΡΡΠ΅ «statvfs» ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ «f_type» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΈΠΏΠ΅ Π€Π‘, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΏΠΎΠ»Ρ Π² ΡΡΡΡΠΊΡΡΡΠ΅ «statfs». Π Π°Π½Π΅Π΅ Π² Linux Π² ΠΏΠΎΠ»Π΅ «f_type» Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π»ΡΡ 0.
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ AArch64 Π² libmvec ΠΈ math.h Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΎΠΏΡΠΈΠΈ «-ffast-math» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π² GCC 9 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ 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, sin, sinf, tan ΠΈ tanf.
- ΠΠ· ΡΠΎΡΡΠ°Π²Π° ΡΠ΄Π°Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libcrypt ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½Π΅ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» «<crypt.h>». Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ libxcrypt.
- Π ΡΡΠΈΠ»ΠΈΡΠ΅ ldconfig ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ‘;’ Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ Π½Π° «.dpkg.tmp» ΠΈ «.dpkg.new», ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² rpm ΠΈ dpkg.
- ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ia64 (ia64*-*-linux-gnu), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel Itanium.
- Π£ΡΡΡΠ°Π½Π΅Π½Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ:
- CVE-2023-6246, CVE-2023-6779, CVE-2023-6780 — ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ __vsyslog_internal(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ SUID-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ.
- CVE-2023-4911 — ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² Glibc ld.so, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²Π° root Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅ ΡΠ°Π·Π±ΠΎΡΠ° ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ GLIBC_TUNABLES, ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°. ΠΠΌΠ΅ΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠΊΡΠΏΡΠΎΠΈΡΡ.
- CVE-2023-4806 — ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ getaddrinfo, Π²ΡΠ·Π²Π°Π½Π½Π°Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ (use-after-free). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° NSS-ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ call-back-Π²ΡΠ·ΠΎΠ²Ρ «_gethostbyname2_r» ΠΈ «_getcanonname_r», Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ² «_gethostbyname3_r». ΠΠ»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ DNS-ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΠ½ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ² IPv6 ΠΈ IPv4, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΊΡΠ°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΡΠ·Π²Π°Π²ΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ getaddrinfo Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° AF_INET6 ΠΏΡΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π°Π³ΠΎΠ² AI_CANONNAME, AI_ALL ΠΈ AI_V4MAPPED.
- CVE-2023-4527 — ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ getaddrinfo, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π²Π½Π΅ Π³ΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ DNS-ΠΎΡΠ²Π΅ΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ TCP, ΡΠ°ΠΌΠ΅ΡΠΎΠΌ Π±ΠΎΠ»Π΅ 2048 Π±Π°ΠΉΡ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ «no-aaaa» Π² /etc/resolv.conf.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π²ΡΠΏΡΡΠΊ Π½Π°Π±ΠΎΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ GNU Binutils 2.42, Π² ΡΠΎΡΡΠ°Π² ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ GNU linker, GNU assembler, nm, objdump, strings, strip.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Binutils:
- Π Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (gas) Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ x86-64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ «—scfi=experimental» Π΄Π»Ρ ΡΠΈΠ½ΡΠ΅Π·Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ CFI (Control Flow Integrity) Π΄Π»Ρ Π²ΡΡΡΠ½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΡΡΠ΅ΠΌΠ±ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ System V AMD64 ABI.
- Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ readelf Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—extra-sym-info» Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ («—symbols»), ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΈΠΌΡ ΡΠ΅ΠΊΡΠΈΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ st_shndx.
- Π ΡΡΠΈΠ»ΠΈΡΠ΅ objcopy ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠΏΡΠΈΠΈ «—set-section-flags» Π·Π½Π°ΡΠ΅Π½ΠΈΡ «large»Π΄Π»Ρ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ»Π°Π³Π° SHF_X86_64_LARGE Π΄Π»Ρ ELF-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ x86-64. Π ΠΎΠΏΡΠΈΠΈ «—visualize-jumps» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ s390.
- ΠΡΠΈ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ s390 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ Π² objdump ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «-M insndesc», Π° Π² gdb — Π½Π°ΡΡΡΠΎΠΉΠΊΡ «set disassembler-options insndesc».
- Π ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ «-z mark-plt» ΠΈ «-z nomark-plt» Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ PLT, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π³ΠΈ DT_X86_64_PLT, DT_X86_64_PLTSZ ΠΈ DT_X86_64_PLTENT.
- Π ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ «—warn-execstack-objects», «—error-execstack» ΠΈ «—error-rxw-segments» Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ABI 2.30 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ LoongArch, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ LoongArch 1.10.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ KVX, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΡΠΎΡΠ°Ρ Kalray (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² SoC Coolidge).
- ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Intel Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ:
- Intel APX: 32 GPRs, NDD, PUSH2/POP2, PUSHP/POPP.
- USER_MSR.
- AVX10.1.
- PBNDKB.
- SM4.
- SM3.
- SHA512.
- AVX-VNNI-INT16.
- Π ΠΏΠΎΡΡ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ RISC-V Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ:
- T-Head (XTheadVector, XTheadZvlsseg ΠΈ XTheadZvamo).
- CORE-V (XCVmac, XCValu).
- SiFive VCIX (XSfVcp).
- Π ΠΏΠΎΡΡ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ AArch64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ:
- SVE2.1 (Scalable Vector Extension 2.1).
- SME2.1 (Scalable Matrix Extension 2.1).
- B16B16 (BFloat16 ΠΈ BFloat16 Π΄Π»Ρ SVE2 ΠΈ SME2).
- RASv2 (Reliability, Availability and Serviceability v2).
- LSE128 (128-bit Atomic).
- GCS (Guarded Control Stac).
- CHK (Check Feature Status).
- SPECRES2 (Enhanced Speculation Restriction).
- LRCPC3 (Load-Acquire RCpc).
- THE (Translation Hardening).
- ITE (Instruction Trace).
- D128 (128-Π±ΠΈΡΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ).
- XS (Π°ΡΡΠΈΠ±ΡΡ ΠΏΠ°ΠΌΡΡΠΈ XS).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AArch64 Cortex-A520, Cortex-A720, Cortex-X3 ΠΈ Cortex-X4.
- Π Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ BPF Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ clang/LLVM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ «#» ΠΈ «//», Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° «;» Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΡΠΎΠΊΠ΅ («;» Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru