OpenSSH 9.2 utgitt med rettelse for sårbarhet før autentisering

Utgivelsen av OpenSSH 9.2 er publisert, en åpen implementering av en klient og server for å bruke SSH 2.0- og SFTP-protokollene. Den nye versjonen eliminerer en sårbarhet som fører til dobbel frigjøring av minne på forhåndsgodkjenningsstadiet. Bare OpenSSH 9.1-utgivelsen er berørt; problemet vises ikke i tidligere versjoner.

For å skape forhold for manifestasjon av sårbarhet er det nok å endre SSH-klientbanneret til "SSH-2.0-FuTTYSH_9.1p1" for å sette flaggene "SSH_BUG_CURVE25519PAD" og "SSH_OLD_DHGEX", som avhenger av versjonen av SSH klient. Etter å ha satt disse flaggene, frigjøres minnet for "options.kex_algorithms"-bufferen to ganger - når du utfører do_ssh2_kex()-funksjonen, som kaller compat_kex_proposal(), og når du utfører do_authentication2()-funksjonen, som kaller input_userauth_request(), mm_getpwna ), copy_set_server_options() langs kjeden , assemble_algorithms() og kex_assemble_names().

Å lage en fungerende utnyttelse for sårbarheten anses som usannsynlig, siden utnyttelsesprosessen er for komplisert - moderne minneallokeringsbiblioteker gir beskyttelse mot dobbel frigjøring av minne, og forhåndsgodkjenningsprosessen der feilen er tilstede, kjører med reduserte rettigheter i en isolert sandkassemiljø.

I tillegg til den bemerkede sårbarheten, fikser den nye utgivelsen også to sikkerhetsproblemer:

  • Det oppstod en feil under behandling av "PermitRemoteOpen"-innstillingen, noe som førte til at det første argumentet ble ignorert hvis det avviker fra verdiene "any" og "none". Problemet dukker opp i nyere versjoner enn OpenSSH 8.7 og fører til at kontrollen hoppes over når bare én tillatelse er spesifisert.
  • En angriper som kontrollerer DNS-serveren som brukes til å løse navn, kan erstatte spesialtegn (for eksempel "*") i kjente_hosts-filer hvis alternativene CanonicalizeHostname og CanonicalizePermittedCNAMEs er aktivert i konfigurasjonen, og systemløseren ikke sjekker riktigheten av svar fra DNS-serveren. Angrepet anses som usannsynlig fordi de returnerte navnene må samsvare med betingelsene spesifisert gjennom CanonicalizePermittedCNAMEs.

Andre endringer:

  • En EnableEscapeCommandline-innstilling er lagt til ssh_config for ssh for å kontrollere om klientsidebehandling av "~C"-escape-sekvensen som gir kommandolinjen er aktivert. Som standard er "~C"-håndtering deaktivert for å bruke tettere sandkasseisolasjon, potensielt ødeleggende systemer som bruker "~C" for portvideresending under kjøring.
  • ChannelTimeout-direktivet har blitt lagt til sshd_config for sshd for å angi kanalinaktivitetstidsavbrudd (kanaler der det ikke registreres trafikk i den tiden som er spesifisert i direktivet, vil automatisk bli stengt). Ulike tidsavbrudd kan angis for økt, X11, agent og trafikkomdirigering.
  • UnusedConnectionTimeout-direktivet er lagt til sshd_config for sshd, slik at du kan angi en timeout for å avslutte klientforbindelser som har vært uten aktive kanaler i en viss tid.
  • Alternativet "-V" er lagt til sshd for å vise versjonen, lik det lignende alternativet i ssh-klienten.
  • Lagt til linjen "Vert" til utdataene til "ssh -G", som gjenspeiler verdien av vertsnavnargumentet.
  • Alternativet "-X" er lagt til scp og sftp for å kontrollere SFTP-protokollparametere som kopibufferstørrelse og antall ventende forespørsler.
  • ssh-keyscan tillater skanning av hele CIDR-adresseområder, for eksempel "ssh-keyscan 192.168.0.0/24".

Kilde: opennet.ru

Legg til en kommentar