ΠΠΎ ΡΠ°Π΄ΡΠΎΡΠΎ Linux ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½Π° Π΅ ΠΏΠ΅ΡΡΠ°ΡΠ° ΠΊΡΠΈΡΠΈΡΠ½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (1, 2, 3) Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ, ΠΊΠΎΡΠ° ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π΄Π° Π³ΠΈ Π΅ΡΠΊΠ°Π»ΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΠ±ΡΠ°Π²Π΅Π½ΠΈ ΡΠ΅ Π΄Π²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠΈ: sshkeysign_pwn ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° ΡΠ° ΠΏΡΠΎΡΠΈΡΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° SSH ΠΊΠ»ΡΡΠ΅Π²ΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΠΈΠΎΡ Ρ ΠΎΡΡ /etc/ssh/ssh_host_*_key, Π° chage_pwn ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° ΡΠ° ΠΏΡΠΎΡΠΈΡΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° /etc/shadow ΡΡΠΎ ΡΠΎΠ΄ΡΠΆΠΈ Ρ Π΅ΡΠΎΠ²ΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠ°ΡΠ° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°.
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΠΌΠ΅Π½Π΅ΡΠ° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅, Π½ΠΎ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°Ρ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π±Π΅ΡΠ΅ Π²ΠΎ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ°, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΏΠ°Ρ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ, Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΡΠΈ ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ ΡΠ°ΠΌΠΎ Π·Π° root ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ /etc/shadow. ΠΡΠΎΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΡΠ° ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° get_dumpable() Π²ΠΎ ptrace ΠΏΡΠΈ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎΠ°ΡΠ° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° ptrace_may_access().
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΠ΄ ΡΡΠ»ΠΎΠ² Π·Π° ΡΠ°ΡΠ° ΡΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΡ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° pidfd ΠΏΠΎ ΠΏΡΠΈΡΡΠ°ΠΏΡΠ²Π°ΡΠ΅ Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΎΠ΄ root ΠΏΡΠΎΡΠ΅Ρ Π½Π° suid. ΠΠΎΠΌΠ΅ΡΡ ΠΎΡΠ²ΠΎΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈ ΡΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° suid (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° setreuid), ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° ΡΠΈΡΡΠ°ΡΠΈΡΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΈΠ·Π²ΡΡΡΠ²Π° root ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° suid ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° suid ΠΏΡΠ΅ΠΊΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΡ pidfd, Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π΅ Π³ΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ ΡΠΎΠ°.
ΠΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°ΡΠΊΠΈΠΎΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° β__ptrace_may_access()β ΡΠ° ΠΏΡΠ΅ΡΠΊΠΎΠΊΠ½ΡΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π°ΠΊΠΎ ΠΏΠΎΠ»Π΅ΡΠΎ task->mm Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΎ Π½Π° NULL ΠΏΠΎ exit_mm(), Π½ΠΎ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ° exit_files(). ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ ΠΏΠΎΠ²ΠΈΠΊ pidfd_getfd ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π° Π΄Π΅ΠΊΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ID (uid) Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΡΠ΅ ΡΠΎΠ²ΠΏΠ°ΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ID ΠΎΠ²Π»Π°ΡΡΠ΅Π½ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°. ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ΅ΡΠ΅Π½ Π²ΠΎ 2020 Π³ΠΎΠ΄ΠΈΠ½Π°, Π½ΠΎ ΠΎΡΡΠ°Π½ΡΠ²Π° Π½Π΅ΡΠ΅ΡΠ΅Π½.
ΠΠΎ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠΎΡ ΡΡΠΎ ΡΠ° Π΄ΠΎΠ±ΠΈΠ²Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° ΠΎΠ΄ /etc/shadow, Π½Π°ΠΏΠ°Π΄ΠΎΡ ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° /usr/bin/chage ΠΏΡΠ΅ΠΊΡ fork+execl ΡΠΎ ΠΎΠ·Π½Π°ΠΊΠ°ΡΠ° suid root, ΠΊΠΎΡΠ° ΡΠ° ΡΠΈΡΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° ΠΎΠ΄ /etc/shadow. ΠΡΠΊΠ°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠΈ, ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ ΠΏΠΎΠ²ΠΈΠΊ pidfd_open ΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ°ΠΌΠΊΠ° Π½Π° Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ pidfd ΠΏΡΠ΅ΠΊΡ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ ΠΏΠΎΠ²ΠΈΠΊ pidfd_getfd ΠΈ Π½ΠΈΠ²Π½Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ /proc/self/fd. ΠΠΎ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠΎΡ sshkeysign_pwn, ΡΠ»ΠΈΡΠ½ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²Π΅Π΄ΡΠ²Π°Π°Ρ ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° suid root ssh-keysign.
ΠΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΠΌΡ Π΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ CVE ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π° Π°ΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ Π²ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅. Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° ΠΎΡΡΠ°Π½ΡΠ²Π° Π½Π΅Π·Π°ΠΊΡΠΏΠ΅Π½Π° Π²ΠΎ ΡΠ°Π΄ΡΠ°ΡΠ° 7.0.7, 6.18.30 ΠΈ 6.12.88, ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°ΡΠ°. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°ΠΌΠΎ Π·Π°ΠΊΡΠΏΠ°ΡΠ°. Π‘Π΅ Π΄ΠΈΡΠΊΡΡΠΈΡΠ°Π°Ρ ΠΌΠΎΠΆΠ½ΠΈ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° sysctl kernel.yama.ptrace_scope=3 ΠΈΠ»ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ·Π½Π°ΠΊΠ°ΡΠ° suid root ΠΎΠ΄ ΠΈΠ·Π²ΡΡΠ½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ (Π±Π°ΡΠ΅ΠΌ ΠΎΠ΄ Π°Π»Π°ΡΠΊΠΈΡΠ΅ ssh-keysign ΠΈ chage ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠΈΡΠ΅).
ΠΠΆΡΡΠΈΡΠ°ΡΠ΅: ΠΠ° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Ρ Π΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΡ CVE-2026-46333. ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΡΠ΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ. Linux 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 ΠΈ 5.10.256 ΡΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ. Π‘ΡΠ°ΡΡΡΠΎΡ Π½Π° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈΡΠ΅ Π½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΎΠ²ΠΈΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ΅Π½ΠΈ Π½Π° ΠΎΠ²ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.
ΠΠ·Π²ΠΎΡ: opennet.ru
