OpenSSH 9.2 udgivet med rettelse for præ-godkendelsessårbarhed

Udgivelsen af ​​OpenSSH 9.2 er blevet offentliggjort, en åben implementering af en klient og server til at arbejde ved hjælp af SSH 2.0- og SFTP-protokollerne. Den nye version eliminerer en sårbarhed, der fører til dobbelt frigørelse af hukommelse på præ-godkendelsesstadiet. Kun OpenSSH 9.1-udgivelsen er berørt; problemet forekommer ikke i tidligere versioner.

For at skabe betingelser for manifestation af sårbarhed er det nok at ændre SSH-klientbanneret til "SSH-2.0-FuTTYSH_9.1p1" for at indstille flagene "SSH_BUG_CURVE25519PAD" og "SSH_OLD_DHGEX", som afhænger af versionen af ​​SSH. klient. Efter indstilling af disse flag frigives hukommelsen for "options.kex_algorithms"-bufferen to gange - når funktionen do_ssh2_kex() udføres, som kalder compat_kex_proposal(), og når funktionen do_authentication2() udføres, som kalder input_userauth_request(), mm_getpwna ), copy_set_server_options() langs kæden , assemble_algorithms() og kex_assemble_names().

Oprettelse af en fungerende udnyttelse af sårbarheden anses for usandsynlig, da udnyttelsesprocessen er for kompliceret - moderne hukommelsesallokeringsbiblioteker giver beskyttelse mod dobbelt frigivelse af hukommelse, og præ-godkendelsesprocessen, hvor fejlen er til stede, kører med reducerede rettigheder i en isoleret sandkassemiljø.

Ud over den bemærkede sårbarhed, løser den nye udgivelse også yderligere to sikkerhedsproblemer:

  • Der opstod en fejl under behandling af "PermitRemoteOpen"-indstillingen, hvilket medførte, at det første argument blev ignoreret, hvis det afviger fra værdierne "any" og "none". Problemet opstår i versioner, der er nyere end OpenSSH 8.7 og forårsager, at kontrollen springes over, når kun én tilladelse er angivet.
  • En hacker, der kontrollerer den DNS-server, der bruges til at løse navne, kan erstatte specialtegn (f.eks. "*") i kendte_værts-filer, hvis indstillingerne CanonicalizeHostname og CanonicalizePermittedCNAMEs er aktiveret i konfigurationen, og systemopløseren ikke kontrollerer rigtigheden af svar fra DNS-serveren. Angrebet anses for usandsynligt, fordi de returnerede navne skal matche betingelserne specificeret gennem CanonicalizePermittedCNAMEs.

Andre ændringer:

  • En EnableEscapeCommandline-indstilling er blevet tilføjet til ssh_config for ssh for at kontrollere, om behandling på klientsiden af ​​"~C"-escape-sekvensen, der giver kommandolinjen, er aktiveret. Som standard er "~C"-håndtering nu deaktiveret for at bruge strammere sandkasseisolering, hvilket potentielt ødelægger systemer, der bruger "~C" til portvideresendelse under kørsel.
  • ChannelTimeout-direktivet er blevet tilføjet til sshd_config for sshd for at indstille timeout for kanalinaktivitet (kanaler, hvor der ikke optages trafik i det tidsrum, der er angivet i direktivet, lukkes automatisk). Forskellige timeouts kan indstilles for session, X11, agent og trafikomdirigering.
  • UnusedConnectionTimeout-direktivet er blevet tilføjet til sshd_config for sshd, hvilket giver dig mulighed for at indstille en timeout for at afslutte klientforbindelser, der har været uden aktive kanaler i en vis tid.
  • "-V"-indstillingen er blevet tilføjet til sshd for at vise versionen, svarende til den lignende indstilling i ssh-klienten.
  • Føjede linjen "Host" til outputtet af "ssh -G", hvilket afspejler værdien af ​​værtsnavnargumentet.
  • "-X"-indstillingen er blevet tilføjet til scp og sftp for at kontrollere SFTP-protokolparametre såsom kopibufferstørrelsen og antallet af afventende anmodninger.
  • ssh-keyscan tillader scanning af fulde CIDR-adresseområder, for eksempel "ssh-keyscan 192.168.0.0/24".

Kilde: opennet.ru

Tilføj en kommentar