Objavljen OpenSSH 9.2 sa ispravkom za ranjivost pred autentifikaciju

Objavljeno je izdanje OpenSSH 9.2, otvorene implementacije klijenta i servera za rad koristeći SSH 2.0 i SFTP protokole. Nova verzija eliminiše ranjivost koja dovodi do dvostrukog oslobađanja memorije u fazi pre-autentifikacije. To utiče samo na izdanje OpenSSH 9.1; problem se ne pojavljuje u starijim verzijama.

Da bi se stvorili uslovi za ispoljavanje ranjivosti, dovoljno je promeniti baner SSH klijenta u “SSH-2.0-FuTTYSH_9.1p1” kako bi se postavile zastavice “SSH_BUG_CURVE25519PAD” i “SSH_OLD_DHGEX”, koje zavise od verzije SSH-a. klijent. Nakon postavljanja ovih zastavica, memorija za bafer “options.kex_algorithms” se oslobađa dva puta - prilikom izvršavanja do_ssh2_kex() funkcije, koja poziva compat_kex_proposal(), i prilikom izvršavanja funkcije do_authentication2() koja poziva input_userauth_request(), mm_low_getpwna ), copy_set_server_options() duž lanca, assemble_algorithms() i kex_assemble_names().

Stvaranje radnog exploit-a za ranjivost se smatra malo vjerojatnim, budući da je proces eksploatacije previše kompliciran - moderne biblioteke dodjele memorije pružaju zaštitu od dvostrukog oslobađanja memorije, a proces pre-auth u kojem je prisutna greška radi sa smanjenim privilegijama u izolovanom sandbox okruženje.

Osim uočene ranjivosti, novo izdanje također popravlja još dva sigurnosna problema:

  • Došlo je do greške prilikom obrade postavke "PermitRemoteOpen", zbog čega se prvi argument ignorira ako se razlikuje od vrijednosti "bilo koji" i "none". Problem se pojavljuje u verzijama novijim od OpenSSH 8.7 i uzrokuje da se provjera preskoči kada je navedena samo jedna dozvola.
  • Napadač koji kontroliše DNS server koji se koristi za razrješavanje imena može postići zamjenu posebnih znakova (na primjer, “*”) u datoteke poznate_hosts ako su opcije CanonicalizeHostname i CanonicalizePermittedCNAMEs omogućene u konfiguraciji, a sistemski razrješavač ne provjeri ispravnost odgovore sa DNS servera. Napad se smatra malo vjerojatnim jer vraćena imena moraju odgovarati uvjetima navedenim putem CanonicalizePermittedCNAMEs.

Ostale promjene:

  • EnableEscapeCommandline postavka je dodana u ssh_config za ssh za kontrolu da li je omogućena obrada na strani klijenta "~C" escape sekvence koja pruža komandnu liniju. Prema zadanim postavkama, rukovanje "~C" je sada onemogućeno da bi se koristila čvršća izolacija sandbox-a, potencijalno razbijanje sistema koji koriste "~C" za prosljeđivanje portova za vrijeme izvođenja.
  • Direktiva ChannelTimeout je dodana u sshd_config za sshd kako bi se podesilo vremensko ograničenje neaktivnosti kanala (kanali na kojima nije zabilježen promet za vrijeme navedeno u direktivi će se automatski zatvoriti). Mogu se postaviti različita vremenska ograničenja za sesiju, X11, agenta i preusmjeravanje prometa.
  • Direktiva UnusedConnectionTimeout je dodana u sshd_config za sshd, omogućavajući vam da postavite vremensko ograničenje za prekid klijentskih veza koje su bile bez aktivnih kanala određeno vrijeme.
  • Opcija “-V” je dodana u sshd za prikaz verzije, slično sličnoj opciji u ssh klijentu.
  • Dodan red "Host" u izlaz "ssh -G", koji odražava vrijednost argumenta imena hosta.
  • Opcija "-X" je dodana u scp i sftp za kontrolu parametara SFTP protokola kao što su veličina bafera za kopiranje i broj zahtjeva na čekanju.
  • ssh-keyscan omogućava skeniranje punih raspona CIDR adresa, na primjer "ssh-keyscan 192.168.0.0/24".

izvor: opennet.ru

Dodajte komentar