Objavljena je bila izdaja OpenSSH 9.2, odprte izvedbe odjemalca in strežnika za delo s protokoloma SSH 2.0 in SFTP. Nova različica odpravlja ranljivost, ki povzroči dvojno sprostitev pomnilnika v fazi pred avtentifikacijo. Prizadeta je le izdaja OpenSSH 9.1; težava se ne pojavi v starejših različicah.
Za ustvarjanje pogojev za manifestacijo ranljivosti je dovolj, da pasico odjemalca SSH spremenite v »SSH-2.0-FuTTYSH_9.1p1«, da nastavite zastavice »SSH_BUG_CURVE25519PAD« in »SSH_OLD_DHGEX«, ki sta odvisni od različice SSH. stranka. Po nastavitvi teh zastavic se pomnilnik za vmesni pomnilnik »options.kex_algorithms« sprosti dvakrat – pri izvajanju funkcije do_ssh2_kex(), ki kliče compat_kex_proposal(), in pri izvajanju funkcije do_authentication2(), ki kliče input_userauth_request(), mm_getpwnamallow( ), copy_set_server_options() vzdolž verige , assemble_algorithms() in kex_assemble_names().
Ustvarjanje delujočega izkoriščanja za ranljivost je malo verjetno, saj je postopek izkoriščanja preveč zapleten – sodobne knjižnice za dodeljevanje pomnilnika zagotavljajo zaščito pred dvojnim sproščanjem pomnilnika, postopek pred avtorizacijo, v katerem je prisotna napaka, pa teče z zmanjšanimi pravicami v izoliranem prostoru. okolje peskovnika.
Poleg omenjene ranljivosti nova izdaja odpravlja še dve varnostni težavi:
- Pri obdelavi nastavitve »PermitRemoteOpen« je prišlo do napake, zaradi česar je bil prvi argument prezrt, če se razlikuje od vrednosti »any« in »none«. Težava se pojavi v različicah, novejših od OpenSSH 8.7, in povzroči preskok preverjanja, ko je navedeno samo eno dovoljenje.
- Napadalec, ki nadzoruje strežnik DNS, ki se uporablja za razreševanje imen, lahko doseže zamenjavo posebnih znakov (na primer »*«) v datotekah unknown_hosts, če sta v konfiguraciji omogočeni možnosti CanonicalizeHostname in CanonicalizePermittedCNAMEs in sistemski razreševalec ne preveri pravilnosti odzive strežnika DNS. Napad se šteje za malo verjetnega, ker se morajo vrnjena imena ujemati s pogoji, določenimi s CanonicalizePermittedCNAMEs.
Druge spremembe:
- V ssh_config za ssh je bila dodana nastavitev EnableEscapeCommandline za nadzor, ali je omogočena obdelava ubežnega zaporedja »~C« na strani odjemalca, ki zagotavlja ukazno vrstico. Privzeto je obravnava »~C« zdaj onemogočena za uporabo tesnejše izolacije peskovnika, kar lahko pokvari sisteme, ki uporabljajo »~C« za posredovanje vrat med izvajanjem.
- Direktiva ChannelTimeout je bila dodana v sshd_config za sshd za nastavitev časovne omejitve nedejavnosti kanala (kanali, v katerih ni zabeležen promet v času, določenem v direktivi, bodo samodejno zaprti). Nastavite lahko različne časovne omejitve za sejo, X11, agenta in preusmeritev prometa.
- Direktiva UnusedConnectionTimeout je bila dodana v sshd_config za sshd, kar vam omogoča, da nastavite časovno omejitev za prekinitev povezav odjemalcev, ki so bili določen čas brez aktivnih kanalov.
- Možnost »-V« je bila dodana v sshd za prikaz različice, podobno podobni možnosti v odjemalcu ssh.
- Izhodu »ssh -G« je dodana vrstica »Host«, ki odraža vrednost argumenta imena gostitelja.
- Možnost "-X" je bila dodana v scp in sftp za nadzor parametrov protokola SFTP, kot sta velikost medpomnilnika za kopiranje in število čakajočih zahtev.
- ssh-keyscan omogoča skeniranje celotnih obsegov naslovov CIDR, na primer "ssh-keyscan 192.168.0.0/24".
Vir: opennet.ru