Është publikuar lëshimi OpenSSH 9.2, implementimi i hapur i klientit dhe serverit për funksionimin mbi protokollet SSH 2.0 dhe SFTP. Në këtë version është rregulluar një dobësi që shkakton çlirimin e dyfishtë të hapësirës në fazën para autentifikimit. Vetëm lëshimi OpenSSH 9.1 është i ndjeshëm ndaj kësaj dobësie, ndërsa versionet e mëparshme nuk kanë këtë problem.
Për të krijuar kushtet për shfaqjen e dobësisë, mjafton të ndryshoni bannerin e SSH-klientit në "SSH-2.0-FuTTYSH_9.1p1" për të aktivizuar flagjet "SSH_BUG_CURVE25519PAD" dhe "SSH_OLD_DHGEX", të cilat varen nga versioni i SSH-klientit. Pas aktivizimit të këtyre flagjeve, memoria për tamponin "options.kex_algorithms" çlirohet dy herë — gjatë ekzekutimit të funksionit do_ssh2_kex(), që thërret compat_kex_proposal(), dhe gjatë ekzekutimit të funksionit do_authentication2(), që thërret në mënyrë të zinxhirit input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() dhe kex_assemble_names().
Krijimi i një eksploiti funksional për këtë dobësi konsiderohet i pamundur, pasi procesi i shfrytëzimit është tepër i komplikuar — bibliotekat moderne të shpërndarjes së memories ofrojnë mbrojtje kundër çlirimit të dyfishtë të memories, dhe procesi pre-auth, në të cilin ndodhet gabimi, ekzekutohet me privilegje të ulëta në një mjedis të izoluar sandbox.
Përveç dobësisë së përmendur, në lëshimin e ri janë rregulluar edhe dy probleme të tjera të sigurisë:
- Gabimi në përpunimin e cilësimit "PermitRemoteOpen", i cili çon në injorimin e argumentit të parë nëse ai është ndryshe nga vlerat "any" dhe "none". Problemi manifestohet në versione më të reja se OpenSSH 8.7 dhe çon në kalimin e kontrollit kur specifikohet vetëm një autorizim.
- Një server DNS i sulmuesit, i kontrolluar për të përcaktuar emrat, mund të arrijë të zëvendësojë simbole speciale (p.sh., "*") në skedarët known_hosts, nëse opsionet CanonicalizeHostname dhe CanonicalizePermittedCNAMEs janë aktivizuar në konfigurim, dhe rezolucioni sistemor nuk verifikon saktësinë e përgjigjeve nga serveri DNS. Kryerja e një sulmi konsiderohet e mundshme por e pakët, pasi emrat e kthyer duhet të përputhen me kushtet e përcaktuara përmes CanonicalizePermittedCNAMEs.
Ndryshime të tjera:
- Në ssh_config për ssh është shtuar cilësimi EnableEscapeCommandline, që kontrollon aktivizimin e përpunimit nga ana e klientit të sekuencave të escape "~C", që ofron një linjë komandash. Me default, përpunimi i "~C" tani është i çaktivizuar për të përdorur një izolim më të fortë sandbox, gjë që potencialisht mund të çojë në probleme në sistemet ku "~C" përdoret për të ridrejtuar portet gjatë funksionimit.
- Në sshd_config për sshd është shtuar direktiva ChannelTimeout për të caktuar një kohë të pritjes së pasivitetit të kanalit (kanalet, në të cilat për një kohë të caktuar të përcaktuar në direktivë nuk ka trafik të regjistruar, do të mbyllen automatikisht). Për seancën, X11, agjentët dhe ridrejtimi i trafikut mund të caktohen kohë të ndryshme pritjeje.
- Në sshd_config për sshd është shtuar drejtorinë UnusedConnectionTimeout, e cila lejon të caktohet një kohëzgjatje për përfundimin e lidhjeve të klientit që janë pa kanale aktive për një periudhë të caktuar kohe.
- Në sshd është shtuar opsioni «-V» për të shfaqur versionin, ngjashëm me një opsion të tillë në klientin ssh.
- Në daljen «ssh -G» është shtuar rreshti «Host», që pasqyron vlerën e argumentit me emrin e host-it.
- Në scp dhe sftp është shtuar opsioni «-X» për të menaxhuar parametrat e tillë të protokollit SFTP si madhësia e buferit të kopjimit dhe numri i kërkesave që presin për t'u përfunduar.
- Në ssh-keyscan lejohet skanimi i grupeve të plota CIDR të adresave, për shembull, «ssh-keyscan 192.168.0.0/24».
Burimi: opennet.ru
