OpenSSH 9.2 lëshuar me rregullim për cenueshmërinë e para-autentifikimit

Është publikuar lëshimi i OpenSSH 9.2, një zbatim i hapur i një klienti dhe serveri për të punuar duke përdorur protokollet SSH 2.0 dhe SFTP. Versioni i ri eliminon një dobësi që çon në lirimin e dyfishtë të kujtesës në fazën e para-autentifikimit. Vetëm lëshimi i OpenSSH 9.1 është prekur; problemi nuk shfaqet në versionet e mëparshme.

Për të krijuar kushte për shfaqjen e cenueshmërisë, mjafton të ndryshoni flamurin e klientit SSH në "SSH-2.0-FuTTYSH_9.1p1" për të vendosur flamujt "SSH_BUG_CURVE25519PAD" dhe "SSH_OLD_DHGEX", të cilat varen nga versioni i SSH. klient. Pas vendosjes së këtyre flamujve, memoria për buferin "options.kex_algorithms" lirohet dy herë - kur ekzekutohet funksioni do_ssh2_kex(), i cili thërret compat_kex_proposal(), dhe kur ekzekuton funksionin do_authentication2(), i cili thërret input_userauth_get_prown(ama), ), copy_set_server_options() përgjatë zinxhirit , assemble_algorithms() dhe kex_assemble_names().

Krijimi i një shfrytëzimi funksional për cenueshmërinë konsiderohet i pamundur, pasi procesi i shfrytëzimit është shumë i ndërlikuar - bibliotekat moderne të shpërndarjes së memories ofrojnë mbrojtje kundër çlirimit të dyfishtë të memories dhe procesi i para-autorizimit në të cilin është i pranishëm gabimi funksionon me privilegje të reduktuara në një vend të izoluar. mjedis sandbox.

Përveç dobësisë së shënuar, versioni i ri rregullon edhe dy çështje të tjera sigurie:

  • Ndodhi një gabim gjatë përpunimit të cilësimit "PermitRemoteOpen", duke bërë që argumenti i parë të shpërfillet nëse ai ndryshon nga vlerat "çdo" dhe "asnjë". Problemi shfaqet në versionet më të reja se OpenSSH 8.7 dhe bën që kontrolli të anashkalohet kur specifikohet vetëm një leje.
  • Një sulmues që kontrollon serverin DNS të përdorur për të zgjidhur emrat mund të arrijë zëvendësimin e karaktereve speciale (për shembull, "*") në skedarët e njohur_hosts nëse opsionet CanonicalizeHostname dhe CanonicalizePermittedCNAMEs janë aktivizuar në konfigurim dhe zgjidhësi i sistemit nuk kontrollon korrektësinë e përgjigjet nga serveri DNS. Sulmi konsiderohet i pamundur sepse emrat e kthyer duhet të përputhen me kushtet e specifikuara përmes CanonicalizePermittedCNAMEs.

Ndryshime të tjera:

  • Një cilësim EnableEscapeCommandline është shtuar në ssh_config për ssh për të kontrolluar nëse përpunimi nga ana e klientit i sekuencës së arratisjes "~C" që ofron linjën e komandës është i aktivizuar. Si parazgjedhje, trajtimi "~C" tani është i çaktivizuar për të përdorur izolim më të ngushtë të sandbox, duke thyer potencialisht sistemet që përdorin "~C" për përcjelljen e portit në kohën e ekzekutimit.
  • Direktiva ChannelTimeout është shtuar te sshd_config për sshd për të vendosur afatin e mosaktivitetit të kanalit (kanalet në të cilat nuk regjistrohet trafik për kohën e specifikuar në direktivë do të mbyllen automatikisht). Mund të vendosen afate të ndryshme për ridrejtimin e sesionit, X11, agjentit dhe trafikut.
  • Direktiva UnusedConnectionTimeout është shtuar në sshd_config për sshd, duke ju lejuar të vendosni një afat kohor për përfundimin e lidhjeve të klientit që kanë qenë pa kanale aktive për një kohë të caktuar.
  • Opsioni "-V" është shtuar në sshd për të shfaqur versionin, ngjashëm me opsionin e ngjashëm në klientin ssh.
  • Shtoi rreshtin "Host" në daljen e "ssh -G", duke pasqyruar vlerën e argumentit të emrit të hostit.
  • Opsioni "-X" është shtuar te scp dhe sftp për të kontrolluar parametrat e protokollit SFTP si madhësia e tamponit të kopjimit dhe numri i kërkesave në pritje.
  • ssh-keyscan lejon skanimin e gamës së plotë të adresave CIDR, për shembull "ssh-keyscan 192.168.0.0/24".

Burimi: opennet.ru

Shto një koment