Kwetsbaarheid in de GSSAPI-patch voor OpenSSH, op afstand exploiteerbaar vóór authenticatie

In de gssapi.patch die in veel Linux-distributies wordt toegepast en ondersteuning voor GSSAPI-gebaseerde sleuteluitwisseling aan OpenSSH toevoegt, is een kwetsbaarheid (CVE-2026-3497) ontdekt die leidt tot het dereferenceren van een pointer, geheugenbeschadiging en omzeiling van het privilegegescheiden mechanisme (Privsep). Deze kwetsbaarheid kan op afstand worden misbruikt voordat authenticatie plaatsvindt. De onderzoeker die het probleem ontdekte, demonstreerde een crash van het proces door het versturen van één gemodificeerd netwerkpakket naar de SSH-server. Het is niet uitgesloten dat naast een denial-of-service ook gevaarlijkere vormen van misbruik van de kwetsbaarheid bestaan.

Opmerkelijk is dat de ontwikkelaars van OpenSSH destijds weigerden de wijziging ter ondersteuning van GSSAPI in de hoofdversie op te nemen vanwege twijfels over de veiligheid ervan. Veel Linux-distributies hebben echter deze patch in hun OpenSSH-pakketten opgenomen. Er bestaan verschillende versies van de GSSAPI-patch, maar de meeste bevatten een fout die leidt tot de kwetsbaarheid. De oplossing is momenteel alleen beschikbaar als een patch, waarbij de wijziging inhoudt dat de aanroep van de functie sshpkt_disconnect() is vervangen door ssh_packet_disconnect() in het bestand kexgsss.c.

Momenteel is de aanwezigheid van de kwetsbaarheid bevestigd in Debian en Ubuntu. In andere distributies wordt het gebruik van de problematische patch en de kwetsbaarheid verder onderzocht (SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora). De kwetsbaarheid verschijnt alleen wanneer de optie "GSSAPIKeyExchange yes" in de instellingen is ingeschakeld. De exploitatiemogelijkheden worden ook beïnvloed door de compileropties waarmee het pakket in de distributies is opgebouwd.

De oorzaak van het ontstaan van de kwetsbaarheid is een fout in de functie sshpkt_disconnect(), waardoor het proces niet werd beëindigd na ontvangst van een disconnect-bericht, wat het voor de aanvaller mogelijk maakte om tijdens de sleutelonderhandelingen een niet-in-geluk-van zijn logica gepaste GSSAPI-bericht te verzenden. de server type GSSAPI-bericht. Na het ontvangen van een ongepland GSSAPI-bericht, server plaatst het in de wachtrij en onderbreekt de uitvoering van het programma niet, maar initialiseert de variabelen die de verbindingsparameters definiëren niet. Verder in de eventverwerkingslus wordt de niet-geïnitialiseerde structuur recv_tok uit de stack gelezen (gegevens die zijn achtergebleven in de stack van de vorige functieaanroep), wordt deze naar een bevoorrechte proces via IPC verzonden en vervolgens doorgegeven aan de functie gss_release_buffer(), die de functie free() kan aanroepen en geheugen kan vrijgeven voor een onjuist wijzende pointer die naar een willekeurig geheugenbereik verwijst.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster