Inilabas ang OpenSSH 9.2 na may pag-aayos para sa kahinaan sa pre-authentication

Ang paglabas ng OpenSSH 9.2 ay nai-publish, isang bukas na pagpapatupad ng isang kliyente at server para sa pagtatrabaho gamit ang SSH 2.0 at SFTP protocol. Ang bagong bersyon ay nag-aalis ng kahinaan na humahantong sa dobleng pagpapalaya ng memorya sa yugto ng pre-authentication. Tanging ang OpenSSH 9.1 release ang apektado; ang problema ay hindi lumalabas sa mga naunang bersyon.

Upang lumikha ng mga kondisyon para sa pagpapakita ng kahinaan, sapat na baguhin ang banner ng SSH client sa "SSH-2.0-FuTTYSH_9.1p1" upang maitakda ang mga flag na "SSH_BUG_CURVE25519PAD" at "SSH_OLD_DHGEX", na depende sa bersyon ng SSH kliyente. Pagkatapos itakda ang mga flag na ito, ang memorya para sa buffer ng β€œoptions.kex_algorithms” ay na-freeze nang dalawang beses - kapag isinagawa ang do_ssh2_kex() function, na tumatawag sa compat_kex_proposal(), at kapag ginagawa ang do_authentication2() function, na tumatawag sa input_userauth_request(), mm_getpwnama ), copy_set_server_options() kasama ang chain , assemble_algorithms() at kex_assemble_names().

Ang paglikha ng isang gumaganang pagsasamantala para sa kahinaan ay itinuturing na hindi malamang, dahil ang proseso ng pagsasamantala ay masyadong kumplikado - ang mga modernong memory allocation library ay nagbibigay ng proteksyon laban sa dobleng pagpapalaya ng memorya, at ang proseso ng pre-auth kung saan naroroon ang error ay tumatakbo nang may pinababang mga pribilehiyo sa isang nakahiwalay kapaligiran ng sandbox.

Bilang karagdagan sa nabanggit na kahinaan, inaayos din ng bagong release ang dalawa pang isyu sa seguridad:

  • May naganap na error noong pinoproseso ang setting na "PermitRemoteOpen", na nagdulot ng pagbalewala sa unang argumento kung ito ay naiiba sa mga value na "anumang" at "wala". Lumilitaw ang problema sa mga bersyon na mas bago kaysa sa OpenSSH 8.7 at nagiging sanhi ng paglaktaw ng tseke kapag isang pahintulot lang ang tinukoy.
  • Ang isang attacker na kumokontrol sa DNS server na ginamit upang lutasin ang mga pangalan ay maaaring makamit ang pagpapalit ng mga espesyal na character (halimbawa, "*") sa mga known_hosts na file kung ang mga opsyon sa CanonicalizeHostname at CanonicalizePermittedCNAMEs ay pinagana sa pagsasaayos, at hindi sinusuri ng system resolver ang kawastuhan ng mga tugon mula sa DNS server. Ang pag-atake ay itinuturing na hindi malamang dahil ang mga ibinalik na pangalan ay dapat tumugma sa mga kundisyong tinukoy sa pamamagitan ng CanonicalizePermittedCNAMEs.

Iba pang mga pagbabago:

  • Ang isang setting ng EnableEscapeCommandline ay idinagdag sa ssh_config para sa ssh upang makontrol kung ang pagpoproseso sa panig ng kliyente ng "~C" na escape sequence na nagbibigay ng command line ay pinagana. Bilang default, naka-disable na ngayon ang paghawak ng "~C" para gumamit ng mas mahigpit na sandbox isolation, na posibleng masira ang mga system na gumagamit ng "~C" para sa port forwarding sa runtime.
  • Ang direktiba ng ChannelTimeout ay idinagdag sa sshd_config para sa sshd upang itakda ang pag-timeout ng kawalan ng aktibidad ng channel (ang mga channel kung saan walang trapikong naitala para sa oras na tinukoy sa direktiba ay awtomatikong isasara). Maaaring magtakda ng iba't ibang timeout para sa session, X11, ahente, at pag-redirect ng trapiko.
  • Ang UnusedConnectionTimeout na direktiba ay idinagdag sa sshd_config para sa sshd, na nagbibigay-daan sa iyong magtakda ng timeout para sa pagwawakas ng mga koneksyon ng kliyente na walang aktibong channel sa isang partikular na oras.
  • Ang opsyong "-V" ay naidagdag sa sshd upang ipakita ang bersyon, katulad ng katulad na opsyon sa ssh client.
  • Idinagdag ang linyang "Host" sa output ng "ssh -G", na sumasalamin sa halaga ng argumento ng hostname.
  • Ang opsyong "-X" ay idinagdag sa scp at sftp upang kontrolin ang mga parameter ng SFTP protocol gaya ng laki ng buffer ng kopya at ang bilang ng mga nakabinbing kahilingan.
  • Ang ssh-keyscan ay nagbibigay-daan sa pag-scan ng buong hanay ng CIDR address, halimbawa "ssh-keyscan 192.168.0.0/24".

Pinagmulan: opennet.ru

Magdagdag ng komento