Išleista OpenSSH 9.2 su išankstinio autentifikavimo pažeidžiamumo pataisymu

Paskelbtas OpenSSH 9.2 leidimas, atviras kliento ir serverio diegimas, skirtas darbui naudojant SSH 2.0 ir SFTP protokolus. Naujoji versija pašalina pažeidžiamumą, dėl kurio dvigubai atlaisvinama atmintis išankstinio autentifikavimo etape. Tai turi įtakos tik OpenSSH 9.1 leidimui; ankstesnėse versijose problema nerodoma.

Norint sudaryti sąlygas pažeidžiamumui pasireikšti, pakanka pakeisti SSH kliento reklamjuostę į „SSH-2.0-FuTTYSH_9.1p1“, kad būtų nustatytos vėliavėlės „SSH_BUG_CURVE25519PAD“ ir „SSH_OLD_DHGEX“, kurios priklauso nuo SSH versijos. klientas. Nustačius šias vėliavėles, „options.kex_algorithms“ buferio atmintis atlaisvinama du kartus – vykdant funkciją do_ssh2_kex(), kuri iškviečia compat_kex_proposal(), ir vykdant funkciją do_authentication2(), kuri iškviečia input_userauth_request(), mmlow(getppwnamal) ), copy_set_server_options() išilgai grandinės , assemble_algorithms() ir kex_assemble_names().

Sukurti veikiantį pažeidžiamumo išnaudojimą laikoma mažai tikėtina, nes išnaudojimo procesas yra per sudėtingas – šiuolaikinės atminties paskirstymo bibliotekos užtikrina apsaugą nuo dvigubo atminties išlaisvinimo, o išankstinio autentifikavimo procesas, kuriame yra klaida, veikia su sumažintomis privilegijomis izoliuotoje smėlio dėžės aplinka.

Be pažymėto pažeidžiamumo, nauja versija taip pat pašalina dar dvi saugos problemas:

  • Apdorojant „PermitRemoteOpen“ nustatymą įvyko klaida, todėl pirmasis argumentas buvo ignoruojamas, jei jis skiriasi nuo reikšmių „any“ ir „none“. Problema atsiranda naujesnėse nei OpenSSH 8.7 versijose, todėl patikrinimas praleidžiamas, kai nurodytas tik vienas leidimas.
  • Užpuolikas, valdantis DNS serverį, naudojamą pavadinimams nustatyti, gali pakeisti specialiuosius simbolius (pvz., „*“) į know_hosts failus, jei konfigūracijoje įjungtos CanonicalizeHostname ir CanonicalizePermittedCNAMEs parinktys, o sistemos sprendiklis netikrina atsakymus iš DNS serverio. Ataka laikoma mažai tikėtina, nes grąžinami pavadinimai turi atitikti sąlygas, nurodytas naudojant CanonicalizePermittedCNAMEs.

Kiti pakeitimai:

  • Prie ssh_config buvo pridėtas nustatymas EnableEscapeCommandline, skirtas ssh, kad būtų galima valdyti, ar kliento pusėje yra įjungtas „~C“ pabėgimo sekos, suteikiančios komandų eilutę, apdorojimas. Pagal numatytuosius nustatymus „~C“ tvarkymas dabar yra išjungtas, kad būtų naudojama griežtesnė smėlio dėžės izoliacija, o tai gali sulaužyti sistemas, kurios naudoja „~C“ prievado persiuntimui vykdymo metu.
  • „ChannelTimeout“ direktyva buvo įtraukta į sshd_config, kad sshd būtų nustatytas kanalo neveiklumo laikas (kanalai, kuriuose direktyvoje nurodytą laiką neįrašomas srautas, bus automatiškai uždaromi). Seansui, X11, agentui ir srauto peradresavimui galima nustatyti skirtingus skirtuosius laikus.
  • UnusedConnectionTimeout direktyva buvo pridėta prie sshd_config for sshd, leidžianti nustatyti kliento ryšių, kurie tam tikrą laiką nebuvo aktyvių kanalų, nutraukimo skirtąjį laiką.
  • Parinktis „-V“ buvo pridėta prie sshd, kad būtų rodoma versija, panaši į panašią parinktį ssh kliente.
  • Prie „ssh -G“ išvesties pridėta eilutė „Host“, atspindinti pagrindinio kompiuterio pavadinimo argumento reikšmę.
  • „-X“ parinktis buvo pridėta prie scp ir sftp, kad būtų galima valdyti SFTP protokolo parametrus, tokius kaip kopijavimo buferio dydis ir laukiančių užklausų skaičius.
  • ssh-keyscan leidžia nuskaityti visus CIDR adresų diapazonus, pvz., "ssh-keyscan 192.168.0.0/24".

Šaltinis: opennet.ru

Добавить комментарий