OpenSSH 9.2 uitgebracht met oplossing voor kwetsbaarheid vóór authenticatie

De release van OpenSSH 9.2 is gepubliceerd, een open implementatie van een client en server voor het werken met de SSH 2.0- en SFTP-protocollen. De nieuwe versie elimineert een kwetsbaarheid die leidt tot dubbele vrijgave van geheugen in de pre-authenticatiefase. Alleen de versie van OpenSSH 9.1 wordt getroffen; het probleem doet zich niet voor in eerdere versies.

Om voorwaarden te creëren voor de manifestatie van kwetsbaarheid, volstaat het om de SSH-clientbanner te wijzigen in “SSH-2.0-FuTTYSH_9.1p1” om de vlaggen “SSH_BUG_CURVE25519PAD” en “SSH_OLD_DHGEX” in te stellen, die afhankelijk zijn van de versie van de SSH cliënt. Na het instellen van deze vlaggen wordt het geheugen voor de buffer “options.kex_algorithms” twee keer vrijgemaakt: bij het uitvoeren van de functie do_ssh2_kex(), die compat_kex_proposal() aanroept, en bij het uitvoeren van de functie do_authentication2(), die input_userauth_request(), mm_getpwnamallow() aanroept ), copy_set_server_options() langs de keten , assemble_algorithms() en kex_assemble_names().

Het creëren van een werkende exploit voor de kwetsbaarheid wordt onwaarschijnlijk geacht, omdat het exploitatieproces te ingewikkeld is - moderne geheugentoewijzingsbibliotheken bieden bescherming tegen dubbel vrijmaken van geheugen, en het pre-authenticatieproces waarin de fout aanwezig is, draait met verminderde rechten in een geïsoleerde omgeving. sandbox-omgeving.

Naast de genoemde kwetsbaarheid lost de nieuwe release ook nog twee beveiligingsproblemen op:

  • Er is een fout opgetreden bij het verwerken van de instelling "PermitRemoteOpen", waardoor het eerste argument werd genegeerd als dit afwijkt van de waarden "any" en "none". Het probleem doet zich voor in versies nieuwer dan OpenSSH 8.7 en zorgt ervoor dat de controle wordt overgeslagen als er slechts één machtiging is opgegeven.
  • Een aanvaller die de DNS-server beheert die wordt gebruikt om namen om te zetten, kan de vervanging van speciale tekens (bijvoorbeeld "*") in de bestanden 'known_hosts' bewerkstelligen als de opties CanonicalizeHostname en CanonicalizePerposedCNAMEs in de configuratie zijn ingeschakeld en de systeemresolver de juistheid van de namen niet controleert. reacties van de DNS-server. De aanval wordt als onwaarschijnlijk beschouwd omdat de geretourneerde namen moeten voldoen aan de voorwaarden die zijn opgegeven via CanonicalizePerposedCNAMEs.

Andere wijzigingen:

  • Er is een EnableEscapeCommandline-instelling toegevoegd aan ssh_config voor ssh om te bepalen of verwerking aan de clientzijde van de "~C"-escape-reeks die de opdrachtregel levert, is ingeschakeld. Standaard is de afhandeling van "~C" nu uitgeschakeld om strengere sandbox-isolatie te gebruiken, waardoor systemen die "~C" gebruiken voor port forwarding tijdens runtime mogelijk worden verbroken.
  • De ChannelTimeout-richtlijn is toegevoegd aan sshd_config voor sshd om de time-out voor kanaalinactiviteit in te stellen (kanalen waarin geen verkeer wordt geregistreerd gedurende de tijd die in de richtlijn is opgegeven, worden automatisch gesloten). Er kunnen verschillende time-outs worden ingesteld voor sessie-, X11-, agent- en verkeersomleiding.
  • De UnusedConnectionTimeout-instructie is toegevoegd aan sshd_config voor sshd, waardoor u een time-out kunt instellen voor het beëindigen van clientverbindingen die gedurende een bepaalde tijd geen actieve kanalen hebben gehad.
  • De “-V” optie is toegevoegd aan sshd om de versie weer te geven, vergelijkbaar met de vergelijkbare optie in de ssh-client.
  • De regel "Host" is toegevoegd aan de uitvoer van "ssh -G", wat de waarde van het hostnaamargument weerspiegelt.
  • De optie "-X" is toegevoegd aan scp en sftp om SFTP-protocolparameters te beheren, zoals de kopieerbuffergrootte en het aantal openstaande verzoeken.
  • ssh-keyscan maakt het scannen van volledige CIDR-adresbereiken mogelijk, bijvoorbeeld "ssh-keyscan 192.168.0.0/24".

Bron: opennet.ru

Voeg een reactie