OpenSSH 9.2 vydaný s opravou zraniteľnosti pred overením

Bolo zverejnené vydanie OpenSSH 9.2, otvorená implementácia klienta a servera pre prácu s protokolmi SSH 2.0 a SFTP. Nová verzia odstraňuje zraniteľnosť, ktorá vedie k dvojitému uvoľneniu pamäte vo fáze pred autentifikáciou. Ovplyvnené je iba vydanie OpenSSH 9.1; problém sa v starších verziách neobjavuje.

Na vytvorenie podmienok pre prejav zraniteľnosti stačí zmeniť banner klienta SSH na „SSH-2.0-FuTTYSH_9.1p1“, aby sa nastavili príznaky „SSH_BUG_CURVE25519PAD“ a „SSH_OLD_DHGEX“, ktoré závisia od verzie SSH. zákazník. Po nastavení týchto príznakov sa pamäť pre vyrovnávaciu pamäť „options.kex_algorithms“ uvoľní dvakrát – pri vykonávaní funkcie do_ssh2_kex(), ktorá volá compat_kex_proposal(), a pri vykonávaní funkcie do_authentication2(), ktorá volá input_userauth_request(), mm_getpwna ), copy_set_server_options() pozdĺž reťazca, assemble_algorithms() a kex_assemble_names().

Vytvorenie funkčného zneužitia zraniteľnosti sa považuje za nepravdepodobné, pretože proces využívania je príliš komplikovaný – moderné knižnice na prideľovanie pamäte poskytujú ochranu pred dvojitým uvoľnením pamäte a proces predbežnej autorizácie, v ktorom sa chyba vyskytuje, beží so zníženými privilégiami v izolovanom prostredí. prostredie sandbox.

Okrem uvedenej zraniteľnosti opravuje nové vydanie aj ďalšie dva bezpečnostné problémy:

  • Pri spracovaní nastavenia „PermitRemoteOpen“ sa vyskytla chyba, ktorá spôsobila, že prvý argument bol ignorovaný, ak sa líši od hodnôt „any“ a „none“. Problém sa objavuje vo verziách novších ako OpenSSH 8.7 a spôsobuje, že kontrola sa preskočí, keď je zadané iba jedno povolenie.
  • Útočník ovládajúci server DNS používaný na preklad názvov môže dosiahnuť nahradenie špeciálnych znakov (napríklad „*“) v súboroch známych_hostiteľov, ak sú v konfigurácii povolené možnosti CanonicalizeHostname a CanonicalizePermittedCNAMEs a systémový resolver nekontroluje správnosť odpovede zo servera DNS. Útok sa považuje za nepravdepodobný, pretože vrátené názvy musia zodpovedať podmienkam špecifikovaným prostredníctvom CanonicalizePermittedCNAMEs.

Ďalšie zmeny:

  • Do ssh_config pre ssh bolo pridané nastavenie EnableEscapeCommandline na kontrolu, či je povolené spracovanie sekvencie escape "~C" na strane klienta, ktorá poskytuje príkazový riadok. V predvolenom nastavení je teraz spracovanie "~C" zakázané, aby sa použila prísnejšia izolácia karantény, čo môže potenciálne narušiť systémy, ktoré používajú "~C" na presmerovanie portov za behu.
  • Direktíva ChannelTimeout bola pridaná do sshd_config pre sshd na nastavenie časového limitu nečinnosti kanála (kanály, v ktorých nie je zaznamenaná žiadna prevádzka počas doby špecifikovanej v smernici, sa automaticky zatvoria). Pre reláciu, X11, agenta a presmerovanie prevádzky možno nastaviť rôzne časové limity.
  • Do sshd_config pre sshd bola pridaná direktíva UnusedConnectionTimeout, ktorá vám umožňuje nastaviť časový limit na ukončenie pripojení klientov, ktorí boli určitý čas bez aktívnych kanálov.
  • Do sshd bola pridaná možnosť „-V“ na zobrazenie verzie, podobne ako podobná možnosť v klientovi ssh.
  • Do výstupu "ssh -G" bol pridaný riadok "Host", ktorý odráža hodnotu argumentu názvu hostiteľa.
  • Do scp a sftp bola pridaná možnosť "-X" na ovládanie parametrov protokolu SFTP, ako je veľkosť vyrovnávacej pamäte kopírovania a počet čakajúcich požiadaviek.
  • ssh-keyscan umožňuje skenovanie celých rozsahov adries CIDR, napríklad "ssh-keyscan 192.168.0.0/24".

Zdroj: opennet.ru

Pridať komentár