OpenSSH 9.2 har slÀppts, en öppen implementation av klient och server för att arbeta med SSH 2.0 och SFTP-protokollen. I den nya versionen har en sÄrbarhet ÄtgÀrdats som ledde till dubbel frigivning av minnesomrÄde innan autentisering Àgde rum. Endast OpenSSH 9.1 Àr sÄrbart; problemet finns inte i tidigare versioner.
För att skapa förutsĂ€ttningar för att sĂ„rbarheten ska upptrĂ€da rĂ€cker det med att Ă€ndra SSH-klientens banner till "SSH-2.0-FuTTYSH_9.1p1" för att sĂ€tta flaggorna "SSH_BUG_CURVE25519PAD" och "SSH_OLD_DHGEX", som beror pĂ„ versionen av SSH-klienten. NĂ€r dessa flaggor sĂ€tts frigörs minnet för buffern "options.kex_algorithms" tvĂ„ gĂ„nger â nĂ€r funktionen do_ssh2_kex() anropas som kallar compat_kex_proposal(), och nĂ€r funktionen do_authentication2() anropas i kedjan input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() och kex_assemble_names().
Att skapa en fungerande exploitering av sĂ„rbarheten anses osannolikt, eftersom utnyttjandeprocessen Ă€r alltför komplicerad â moderna minneshanteringsbibliotek erbjuder skydd mot dubbel frigivning av minne, och pre-auth-processen dĂ€r felet finns körs med begrĂ€nsade privilegier i en isolerad sandbox-miljö.
Förutom den noterade sÄrbarheten har tvÄ andra sÀkerhetsproblem ÄtgÀrdats i den nya utgÄvan:
- Ett fel i hanteringen av instÀllningen "PermitRemoteOpen" som leder till att det första argumentet ignoreras om det avviker frÄn vÀrdena "any" och "none". Problemet finns i versioner som Àr nyare Àn OpenSSH 8.7 och gör att kontrollen vid angivande av endast en auktorisation förbises.
- En angripare som kontrollerar DNS-servern som anvÀnds för namnupptÀckten kan Ästadkomma substitution av specialtecken (t.ex. "* ") i filer kÀnda som known_hosts, om konfigurationen har alternativ som CanonicalizeHostname och CanonicalizePermittedCNAMEs aktiverade, och systemresolvern inte verifierar svaren frÄn DNS-servern. Att utföra en attack anses osannolikt, eftersom de namn som returneras mÄste uppfylla villkoren som anges via CanonicalizePermittedCNAMEs.
Andra förÀndringar:
- I ssh_config för ssh har instÀllningen EnableEscapeCommandline lagts till, som styr aktiveringen av hantering av escape-sekvenser pÄ klientsidan, "~C", som ger en kommandotolk. Som standard Àr hanteringen av "~C" nu inaktiverad för att anvÀnda en striktare sandbox-isolering, vilket potentiellt kan leda till driftstörningar i system dÀr "~C" anvÀnds för portvidarekoppling under drift.
- I sshd_config för sshd har direktivet ChannelTimeout lagts till för att ange timeout för inaktivitet för kanalen (kanaler som inte har registrerat trafik under den angivna tidsperioden ska automatiskt stÀngas). För sessioner, X11, agent och trafikvidarekoppling kan olika timeouter anges.
- I sshd_config för sshd har direktivet UnusedConnectionTimeout lagts till, vilket möjliggör att stÀlla in en timeout för att avsluta klientanslutningar som har varit inaktiva under en viss tid utan aktiva kanaler.
- I sshd har alternativet "-V" lagts till för att visa version, i linje med ett liknande alternativ i ssh-klienten.
- I utdata frÄn "ssh -G" har raden "Host" lagts till, som Äterspeglar vÀrdet av argumentet med vÀrdnamnet.
- I scp och sftp har alternativet "-X" lagts till för att styra sÄdana SFTP-protokollparametrar som storlek pÄ kopieringsbuffert och antal förvÀntande förfrÄgningar.
- I ssh-keyscan har det blivit möjligt att skanna hela CIDR-adressintervall, exempelvis "ssh-keyscan 192.168.0.0/24".
KĂ€lla: opennet.ru
