Выпуск OpenSSH 9.2 с устранСниСм уязвимости, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉΡΡ Π½Π° этапС Π΄ΠΎ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· OpenSSH 9.2, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ SSH 2.0 ΠΈ SFTP. Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии устранСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, приводящая ΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌΡƒ освобоТдСнию области памяти Π½Π° стадии Π΄ΠΎ прохоТдСния Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Уязвимости ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ выпуск OpenSSH 9.1, Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ проявляСтся.

Для создания условий проявлСния уязвимости достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Π°Π½Π½Π΅Ρ€ SSH-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° «SSH-2.0-FuTTYSH_9.1p1» для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выставлСния Ρ„Π»Π°Π³ΠΎΠ² «SSH_BUG_CURVE25519PAD» ΠΈ «SSH_OLD_DHGEX», зависящих ΠΎΡ‚ вСрсии SSH-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ПослС выставлСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π±ΡƒΡ„Π΅Ρ€ «options.kex_algorithms» освобоТдаСтся Π΄Π²Π° Ρ€Π°Π·Π° — ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ do_ssh2_kex(), Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ compat_kex_proposal(), ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ do_authentication2(), Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() ΠΈ kex_assemble_names().

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ эксплоита для уязвимости считаСтся маловСроятным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ процСсс эксплуатации слишком услоТнён — соврСмСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ распрСдСлСния памяти ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ освобоТдСния памяти, Π° процСсс pre-auth, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт ошибка, выполняСтся с ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ sandbox-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ уязвимости Π² Π½ΠΎΠ²ΠΎΠΌ выпускС Ρ‚Π°ΠΊΠΆΠ΅ устранСны Π΅Ρ‰Ρ‘ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ:

  • Ошибка ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ настройки «PermitRemoteOpen», приводящая ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ссли ΠΎΠ½ отличаСтся ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ «any» ΠΈ «none». ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся Π² вСрсиях Π½ΠΎΠ²Π΅Π΅ OpenSSH 8.7 ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пропуску ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ полномочия.
  • ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ DNS-сСрвСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для опрСдСлСния ΠΈΠΌΡ‘Π½, ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ подстановки спСцсимволов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «*») Π² Ρ„Π°ΠΉΠ»Ρ‹ known_hosts, Ссли Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ CanonicalizeHostname ΠΈ CanonicalizePermittedCNAMEs, ΠΈ систСмный Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€ Π½Π΅ провСряСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΡ‚ DNS-сСрвСра. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Ρ‚Π°ΠΊΠΈ рассматриваСтся ΠΊΠ°ΠΊ маловСроятноС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ условиям, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· CanonicalizePermittedCNAMEs.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния:

  • Π’ ssh_config для ssh Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка EnableEscapeCommandline, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ «~C», ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° «~C» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° для использования Π±ΠΎΠ»Π΅Π΅ Тёсткой sandbox-изоляции, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСм, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… «~C» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для пСрСнаправлСния ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  • Π’ sshd_config для sshd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ChannelTimeout для задания Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° нСактивности ΠΊΠ°Π½Π°Π»Π° (ΠΊΠ°Π½Π°Π»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ врСмя Π½Π΅ зафиксирован Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹). Для сСанса, X11, Π°Π³Π΅Π½Ρ‚Π° ΠΈ пСрСнаправлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹.
  • Π’ sshd_config для sshd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° UnusedConnectionTimeout, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ клиСнтских соСдинСний, находящихся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ врСмя Π±Π΅Π· Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ².
  • Π’ sshd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «-V» для Π²Ρ‹Π²ΠΎΠ΄Π° вСрсии ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ssh.
  • Π’ Π²Ρ‹Π²ΠΎΠ΄ «ssh -G» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° строка «Host», ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ хоста.
  • Π’ scp ΠΈ sftp Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «-X» для управлСния Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° SFTP, ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° копирования ΠΈ число ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ запросов.
  • Π’ ssh-keyscan Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ сканированиС ΠΏΠΎΠ»Π½Ρ‹Ρ… CIDR-Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² адрСсов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «ssh-keyscan 192.168.0.0/24».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ