Udgivelsen af OpenSSH 9.2 med løsning på en sårbarhed, der viser sig før godkendelse

OpenSSH 9.2 er udgivet, som er en open source-implementering af klient og server til brug med SSH 2.0- og SFTP-protokoller. I den nye version er en sårbarhed, der fører til dobbelt frigivelse af hukommelse før afslutning af autentificering, blevet rettet. Kun OpenSSH 9.1-versionen er sårbar, og problemet optræder ikke i tidligere versioner.

For at skabe forhold for, at sårbarheden opstår, er det tilstrækkeligt at ændre SSH-klientens banner til «SSH-2.0-FuTTYSH_9.1p1», så flags «SSH_BUG_CURVE25519PAD» og «SSH_OLD_DHGEX», der afhænger af SSH-klientens version, aktiveres. Når disse flags er sat, frigives hukommelsen til bufferen «options.kex_algorithms» to gange — første gang i funktionen do_ssh2_kex(), som kalder compat_kex_proposal(), og anden gang i funktionen do_authentication2(), som kaldet i kæden input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() og kex_assemble_names().

At skabe et fungerende exploit for sårbarheden vurderes at være usandsynligt, da udnyttelsesprocessen er alt for kompleks — moderne hukommelsesfordelingsbiblioteker tilbyder beskyttelse mod dobbelt frigivelse af hukommelse, og pre-auth-processen, hvor fejlen optræder, kører med nedsatte rettigheder i et isoleret sandbox-miljø.

Udover den nævnte sårbarhed er der også rettet yderligere to sikkerhedsproblemer i den nye version:

  • En fejl i behandlingen af indstillingen «PermitRemoteOpen», der forårsager, at det første argument ignoreres, hvis det er forskelligt fra værdierne «any» og «none». Problemet optræder i versioner nyere end OpenSSH 8.7 og fører til, at kontroloversigt undlades, når der kun angives én tilladelse.
  • En angriber, der kontrollerer DNS-serveren, der bruges til at bestemme navne, kan få indsat specielle tegn (for eksempel «*») i known_hosts-filer, hvis konfigurationen har indstillingerne CanonicalizeHostname og CanonicalizePermittedCNAMEs aktiveret, og systemresolveren ikke kontrollerer korrektheden af svarene fra DNS-serveren. Udførelsen af angrebet anses for usandsynlig, da de returnerede navne skal overholde de betingelser, der er angivet gennem CanonicalizePermittedCNAMEs.

Andre ændringer:

  • I ssh_config for ssh er tilføjet indstillingen EnableEscapeCommandline, som styrer aktiveringen af klientbehandling af escape-sekvenserne «~C», der giver adgang til kommandolinjen. Som standard er behandlingen af «~C» nu deaktiveret for at bruge en strammere sandbox-isolering, hvilket potentielt kan føre til problemer i systemer, hvor «~C» anvendes til portvideresendelse under drift.
  • I sshd_config for sshd er der tilføjet direktivet ChannelTimeout til at angive timeout for uvirksomhed på kanalen (kanaler, hvor der ikke er registreret trafik i den angivne tid, vil automatisk blive lukket). For session, X11, agent og trafikvideresendelse kan der angives forskellige timeouts.
  • I sshd_config for sshd er der tilføjet direktivet UnusedConnectionTimeout, der muliggør angivelse af timeout for afslutning af klientforbindelser, der har været inaktive i en bestemt tid uden aktive kanaler.
  • I sshd er der tilføjet muligheden «-V» for at vise versionen, ligesom den findes i ssh-klienten.
  • I outputtet fra «ssh -G» er der tilføjet linjen «Host», der afspejler værdien af argumentet med værtsnavnet.
  • I scp og sftp er der tilføjet muligheden «-X» til at styre sådanne SFTP-protokolparametre som kopieringsbufferstørrelse og antal ventende anmodninger.
  • I ssh-keyscan er scanning af hele CIDR-adresseområder tilladt, f.eks. «ssh-keyscan 192.168.0.0/24».

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster