OpenSSH 9.2 avaldati koos parandusega eelautentimise haavatavuse jaoks

Avaldatud on OpenSSH 9.2 väljalase, mis on kliendi ja serveri avatud rakendus SSH 2.0 ja SFTP protokollidega töötamiseks. Uus versioon kõrvaldab haavatavuse, mis viib mälu kahekordse vabastamiseni eelautentimise etapis. Mõjutatud on ainult OpenSSH 9.1 väljalase; varasemates versioonides probleem ei ilmne.

Haavatavuse avaldumiseks tingimuste loomiseks piisab SSH-kliendi bänneri muutmisest "SSH-2.0-FuTTYSH_9.1p1", et määrata lipud "SSH_BUG_CURVE25519PAD" ja "SSH_OLD_DHGEX", mis sõltuvad SSH versioonist. klient. Pärast nende lippude seadistamist vabastatakse puhvri “options.kex_algorithms” mälu kaks korda - funktsiooni do_ssh2_kex() täitmisel, mis kutsub välja compat_kex_proposal(), ja funktsiooni do_authentication2() täitmisel, mis kutsub esile input_userauth_request(), mm_low(getpwnamal) ), copy_set_server_options() piki ahelat , assemble_algorithms() ja kex_assemble_names().

Haavatavuse jaoks toimiva ärakasutamise loomist peetakse ebatõenäoliseks, kuna ärakasutamisprotsess on liiga keeruline – kaasaegsed mälujaotusteegid pakuvad kaitset mälu topeltvabanemise eest ning tõrke esinemise eelautentimisprotsess jookseb isoleeritud failis vähendatud privileegidega. liivakasti keskkond.

Lisaks märgitud haavatavusele parandab uus versioon veel kaks turvaprobleemi:

  • Seade "PermitRemoteOpen" töötlemisel ilmnes viga, mille tõttu esimest argumenti eirati, kui see erineb väärtustest "any" ja "none". Probleem ilmneb OpenSSH 8.7-st uuemates versioonides ja põhjustab kontrolli vahelejätmise, kui on määratud ainult üks luba.
  • Ründaja, kes juhib nimede lahendamiseks kasutatavat DNS-serverit, võib saavutada erimärkide (nt “*”) asendamise know_hosts-failidega, kui konfiguratsioonis on lubatud CanonicalizeHostname ja CanonicalizePermittedCNAMEs ning süsteemilahendaja ei kontrolli faili õigsust. DNS-serveri vastused. Rünnakut peetakse ebatõenäoliseks, kuna tagastatud nimed peavad vastama CanonicalizePermittedCNAMEs määratud tingimustele.

Muud muudatused:

  • Seade EnableEscapeCommandline on lisatud ssh-i ssh_config-i, et kontrollida, kas käsurida pakkuva paojärjestuse "~C" kliendipoolne töötlemine on lubatud. Vaikimisi on "~C" töötlemine nüüd keelatud, et kasutada liivakasti tihedamat isolatsiooni, mis võib rikkuda süsteeme, mis kasutavad käitusajal pordi edastamiseks "~C".
  • Kanali passiivsuse ajalõpu määramiseks on sshd_config-i lisatud ChannelTimeout direktiiv (kanalid, kus direktiivis määratud aja jooksul liiklust ei salvestata, suletakse automaatselt). Seansi, X11, agendi ja liikluse ümbersuunamise jaoks saab määrata erinevaid ajalõppe.
  • UnusedConnectionTimeout direktiiv on lisatud sshd_config jaoks sshd jaoks, mis võimaldab teil määrata ajalõpu kliendiühenduste lõpetamiseks, mis on teatud aja jooksul olnud ilma aktiivsete kanaliteta.
  • Versiooni kuvamiseks on sshd-le lisatud valik "-V", sarnaselt ssh-kliendi sarnase valikuga.
  • Lisati "ssh -G" väljundisse rida "Host", mis kajastab hostinime argumendi väärtust.
  • Scp-le ja sftp-le on lisatud valik "-X", et juhtida SFTP-protokolli parameetreid, nagu kopeerimispuhvri suurus ja ootel olevate päringute arv.
  • ssh-keyscan võimaldab skannida kõiki CIDR-i aadressivahemikke, näiteks "ssh-keyscan 192.168.0.0/24".

Allikas: opennet.ru

Lisa kommentaar