OpenSSH 9.2 julkaistiin korjauksella esitodennuksen haavoittuvuutta varten

OpenSSH 9.2:n julkaisu on julkaistu SSH 2.0- ja SFTP-protokollia käyttävän asiakkaan ja palvelimen avoin toteutus. Uusi versio poistaa haavoittuvuuden, joka johtaa kaksinkertaiseen muistin vapautumiseen esitodennusvaiheessa. Tämä vaikuttaa vain OpenSSH 9.1 -julkaisuun; ongelma ei ilmene aiemmissa versioissa.

Edellytysten luomiseksi haavoittuvuuden ilmentymiselle riittää, että SSH-asiakasbanneri vaihdetaan muotoon "SSH-2.0-FuTTYSH_9.1p1", jotta voidaan asettaa liput "SSH_BUG_CURVE25519PAD" ja "SSH_OLD_DHGEX", jotka riippuvat SSH:n versiosta. asiakas. Kun nämä liput on asetettu, "options.kex_algorithms" -puskurin muisti vapautetaan kahdesti - suoritettaessa do_ssh2_kex()-toimintoa, joka kutsuu compat_kex_proposal(), ja suoritettaessa do_authentication2()-funktiota, joka kutsuu input_userauth_request(), mmlow(getpwnamal) ), copy_set_server_options() ketjussa , assemble_algoritms() ja kex_assemble_names().

Toimivan hyväksikäytön luomista haavoittuvuuden varalta pidetään epätodennäköisenä, koska hyväksikäyttöprosessi on liian monimutkainen – nykyaikaiset muistinvarauskirjastot tarjoavat suojan muistin kaksinkertaiselta vapautumiselta, ja todennusta edeltävä prosessi, jossa virhe esiintyy, suoritetaan pienemmillä oikeuksilla eristetyssä hiekkalaatikkoympäristö.

Mainitun haavoittuvuuden lisäksi uusi julkaisu korjaa myös kaksi muuta tietoturvaongelmaa:

  • PermitRemoteOpen-asetusta käsiteltäessä tapahtui virhe, jolloin ensimmäinen argumentti jätettiin huomioimatta, jos se eroaa arvoista "any" ja "none". Ongelma ilmenee OpenSSH 8.7:ää uudemmissa versioissa ja aiheuttaa tarkistuksen ohittamisen, kun vain yksi käyttöoikeus on määritetty.
  • Nimien ratkaisemiseen käytettävää DNS-palvelinta hallitseva hyökkääjä voi korvata erikoismerkit (esimerkiksi "*") tunnettuihin_hosts-tiedostoihin, jos CanonicalizeHostname- ja CanonicalizePermittedCNAMEs-asetukset on otettu käyttöön määrityksessä eikä järjestelmän ratkaisija tarkista tiedostojen oikeellisuutta. vastauksia DNS-palvelimelta. Hyökkäys katsotaan epätodennäköiseksi, koska palautettujen nimien on vastattava CanonicalizePermittedCNAMEs-sovelluksessa määritettyjä ehtoja.

Muut muutokset:

  • EnableEscapeCommandline-asetus on lisätty parametriin ssh_config for ssh hallitsemaan, onko komentorivin tarjoavan "~C"-pakokoodin asiakaspuolen käsittely käytössä. Oletuksena "~C"-käsittely on nyt poistettu käytöstä, jotta voidaan käyttää tiukempaa hiekkalaatikon eristystä, mikä saattaa rikkoa järjestelmät, jotka käyttävät "~C":tä portin edelleenlähetykseen ajon aikana.
  • ChannelTimeout-direktiivi on lisätty kohtaan sshd_config, jotta sshd asettaa kanavan passiivisuuden aikakatkaisun (kanavat, joille ei ole tallennettu liikennettä käskyn määrittämänä aikana, suljetaan automaattisesti). Istunnolle, X11:lle, agentille ja liikenteen uudelleenohjaukselle voidaan asettaa erilaisia ​​aikakatkaisuja.
  • UnusedConnectionTimeout-direktiivi on lisätty sshd_config for sshd:lle, jonka avulla voit määrittää aikakatkaisun asiakasyhteyksien katkaisemiselle, jotka ovat olleet ilman aktiivisia kanavia tietyn ajan.
  • Vaihtoehto "-V" on lisätty sshd:hen version näyttämiseksi, samanlainen kuin ssh-asiakasohjelmassa.
  • Lisättiin rivi "Host" "ssh -G" -lähtöön, mikä kuvastaa hostname-argumentin arvoa.
  • "-X"-vaihtoehto on lisätty scp:hen ja sftp:hen ohjaamaan SFTP-protokollan parametreja, kuten kopiopuskurin kokoa ja odottavien pyyntöjen määrää.
  • ssh-keyscan mahdollistaa kaikkien CIDR-osoitealueiden skannauksen, esimerkiksi "ssh-keyscan 192.168.0.0/24".

Lähde: opennet.ru

Lisää kommentti