Fortschritte beim Erstellen eines Exploits für OpenSSH 9.1

Qualys hat einen Weg gefunden, den Malloc- und Double-Free-Schutz zu umgehen, um mithilfe einer Schwachstelle in OpenSSH 9.1, bei der festgestellt wurde, dass ein geringes Risiko für die Erstellung eines funktionierenden Exploits besteht, eine Übertragung der Kontrolle auf den Code einzuleiten. Gleichzeitig bleibt die Möglichkeit, einen funktionierenden Exploit zu erstellen, eine große Frage.

Die Sicherheitslücke wird durch eine doppelte Freischaltung vor der Authentifizierung verursacht. Um Bedingungen für das Auftreten der Schwachstelle zu schaffen, reicht es aus, das SSH-Client-Banner in „SSH-2.0-FuTTYSH_9.1p1“ (oder einen anderen alten SSH-Client) zu ändern, um die Flags „SSH_BUG_CURVE25519PAD“ und „SSH_OLD_DHGEX“ zu setzen. Nach dem Setzen dieser Flags wird der Speicher für den Puffer „options.kex_algorithms“ zweimal freigegeben.

Forscher von Qualys konnten durch Manipulation der Schwachstelle die Kontrolle über das Prozessorregister „%rip“ erlangen, das einen Zeiger auf den nächsten auszuführenden Befehl enthält. Die entwickelte Ausnutzungstechnik ermöglicht es Ihnen, die Kontrolle an jeden Punkt im Adressraum des sshd-Prozesses in einer nicht aktualisierten OpenBSD 7.2-Umgebung zu übertragen, die standardmäßig mit OpenSSH 9.1 geliefert wird.

Es wird darauf hingewiesen, dass es sich bei dem vorgeschlagenen Prototyp nur um eine Implementierung der ersten Stufe des Angriffs handelt – um einen funktionierenden Exploit zu erstellen, ist es notwendig, die ASLR-, NX- und ROP-Schutzmechanismen zu umgehen und die Sandbox-Isolation zu umgehen, was unwahrscheinlich ist. Um das Problem der Umgehung von ASLR, NX und ROP zu lösen, ist es notwendig, Informationen über Adressen zu erhalten, was durch die Identifizierung einer weiteren Schwachstelle erreicht werden kann, die zu Informationslecks führt. Ein Fehler im privilegierten übergeordneten Prozess oder Kernel kann beim Verlassen der Sandbox hilfreich sein.

Source: opennet.ru

Kommentar hinzufügen