OpenSSH 9.2 liberigita kun riparo por antaŭ-aŭtentikiga vundebleco

La eldono de OpenSSH 9.2 estis publikigita, malferma efektivigo de kliento kaj servilo por labori uzante la SSH 2.0 kaj SFTP-protokolojn. La nova versio forigas vundeblecon, kiu kondukas al duobla liberigo de memoro ĉe la antaŭ-aŭtentikiga stadio. Nur la eldono de OpenSSH 9.1 estas tuŝita; la problemo ne aperas en pli fruaj versioj.

Por krei kondiĉojn por la manifestiĝo de vundebleco, sufiĉas ŝanĝi la SSH-klientan standardon al "SSH-2.0-FuTTYSH_9.1p1" por agordi la flagojn "SSH_BUG_CURVE25519PAD" kaj "SSH_OLD_DHGEX", kiuj dependas de la versio de la SSH. kliento. Post agordo de ĉi tiuj flagoj, la memoro por la bufro "options.kex_algorithms" liberiĝas dufoje - dum la ekzekuto de la funkcio do_ssh2_kex(), kiu nomas compat_kex_proposal(), kaj dum la ekzekuto de la funkcio do_authentication2(), kiu nomas input_userauth_request(), mm_get(pwna). ), copy_set_server_options () laŭ la ĉeno , assemble_algorithms () kaj kex_assemble_names ().

Krei funkciantan ekspluatadon por la vundebleco estas konsiderata neprobabla, ĉar la ekspluata procezo estas tro komplika - modernaj memor-atribuaj bibliotekoj provizas protekton kontraŭ duobla liberigo de memoro, kaj la antaŭaŭtoriga procezo, en kiu la eraro ĉeestas, funkcias kun reduktitaj privilegioj en izolita. sablokesto-medio.

Krom la rimarkita vundebleco, la nova eldono ankaŭ riparas du pliajn sekurecajn problemojn:

  • Okazis eraro dum prilaborado de la agordo "PermitRemoteOpen", igante la unuan argumenton ignori se ĝi diferencas de la valoroj "ajna" kaj "neniu". La problemo aperas en versioj pli novaj ol OpenSSH 8.7 kaj igas la kontrolon preterpasi kiam nur unu permeso estas specifita.
  • Atakanto kontrolanta la DNS-servilon uzatan por solvi nomojn povas atingi la anstataŭigon de specialaj signoj (ekzemple, "*") en known_hosts dosierojn se la opcioj CanonicalizeHostname kaj CanonicalizePermittedCNAMEs estas ebligitaj en la agordo, kaj la sistema solvanto ne kontrolas la ĝustecon de respondojn de la DNS-servilo. La atako estas konsiderata neprobabla ĉar la resenditaj nomoj devas kongrui kun la kondiĉoj specifitaj per CanonicalizePermittedCNAMEs.

Aliaj ŝanĝoj:

  • EnableEscapeCommandline-agordo estis aldonita al ssh_config por ssh por kontroli ĉu klientflanka pretigo de la "~C" eskapa sekvenco kiu provizas la komandlinion estas ebligita. Defaŭlte, "~C" uzado nun estas malŝaltita por uzi pli mallozan sablokeston izolitecon, eble rompante sistemojn kiuj uzas "~C" por haveno plusendado ĉe rultempo.
  • La direktivo ChannelTimeout estis aldonita al sshd_config por sshd por agordi la kanalan senaktivectempon (kanaloj en kiuj neniu trafiko estas registrita dum la tempo specifita en la direktivo estos aŭtomate fermitaj). Oni povas agordi malsamajn tempodaŭrojn por sesio, X11, agento kaj trafika redirekto.
  • La UnusedConnectionTimeout direktivo estis aldonita al sshd_config por sshd, permesante al vi agordi tempotempon por ĉesigi klientkonektojn kiuj estis sen aktivaj kanaloj dum certa tempo.
  • La opcio "-V" estis aldonita al sshd por montri la version, simile al la simila opcio en la ssh-kliento.
  • Aldonis la linion "Host" al la eligo de "ssh -G", reflektante la valoron de la hostname argumento.
  • La opcio "-X" estis aldonita al scp kaj sftp por kontroli SFTP-protokolparametrojn kiel ekzemple la kopia bufrograndeco kaj la nombro da pritraktataj petoj.
  • ssh-keyscan permesas skanadon de plenaj CIDR-adresintervaloj, ekzemple "ssh-keyscan 192.168.0.0/24".

fonto: opennet.ru

Aldoni komenton