Im Prozess der Untersuchung der letzte Woche entdeckten kritischen SicherheitsanfĂ€lligkeit in OpenSSH wurde eine weitere Ă€hnliche SicherheitsanfĂ€lligkeit (CVE-2024-6409) entdeckt, die eine AusfĂŒhrung von Code aus der Ferne ohne Authentifizierung ermöglicht. Die neue SicherheitsanfĂ€lligkeit ist nicht so gefĂ€hrlich wie die vorherige, da sie nach dem Heruntersetzen der Berechtigungen in einem vom SSH-Server gestarteten Kindprozess auftritt. Die SicherheitsanfĂ€lligkeit ist in den openssh-Paketen des Red Hat Enterprise Linux 9-Distributions vorhanden, die auf der im Jahr 2021 veröffentlichten Version OpenSSH 8.7 basieren. Das Problem betrifft auch die Pakete fĂŒr Fedora Linux 36 und 37, die auf den Versionen OpenSSH 8.7 und 8.8 basieren.
Im Wesentlichen ist die SicherheitsanfĂ€lligkeit Ă€hnlich dem vorherigen Problem und wird ebenfalls durch einen Rennzustand im SIGALRM-Interrupt-Handler verursacht, der durch die AusfĂŒhrung von Funktionen ausgelöst wird, die nicht fĂŒr den asynchronen Aufruf aus dem Signal-Handler ausgelegt sind. Der Handler wird beim Auftreten eines Timeouts aktiviert, das durch den Parameter LoginGraceTime festgelegt wird, und unterbricht die aktuelle AusfĂŒhrung des Codes. Die Verwendung nicht fĂŒr die asynchrone AusfĂŒhrung vorgesehener Funktionen im Interrupt-Handler, bei denen dynamische Speicherzuweisung stattfinden, wie etwa syslog(), kann zur BeschĂ€digung interner malloc-Strukturen fĂŒhren, wenn SIGALRM wĂ€hrend der AusfĂŒhrung eines bestimmten Codes ausgelöst wird.
Die neue SicherheitsanfĂ€lligkeit unterscheidet sich darin, dass der Rennzustand durch den Aufruf der Funktion cleanup_exit() im Signal-Handler grace_alarm_handler() entsteht. In dem Hauptcode von OpenSSH kann diese Funktion im asynchron ausgefĂŒhrten Code verwendet werden, aber in den Paketen fĂŒr RHEL 9 und Fedora wurde ein zusĂ€tzlicher Patch angewendet, der im cleanup_exit() einen Aufruf einer Funktion zur Generierung von Audit-Ereignissen hinzugefĂŒgt hat, die fĂŒr die Verwendung in Signal-Handlern ausgelegt ist.
Dieser Patch wurde in RHEL 9 und abgeleiteten Distributionen in Paketen verwendet, die auf OpenSSH 8.7p1 basieren. In den aktuellen Versionen von Fedora tritt das Problem nicht auf, da die Distribution ab Fedora 38 auf eine neuere Version von OpenSSH umgestiegen ist, ohne cleanup_exit() zu Ă€ndern. Im Gegensatz zur vorherigen SicherheitsanfĂ€lligkeit ist ein Workaround zum Blockieren des neuen Problems, der auf der Verwendung der Option â-eâ in sshd basiert, die die Protokollausgabe ĂŒber syslog deaktiviert, nicht geeignet. Um die SicherheitsanfĂ€lligkeit in sshd_config zu blockieren, kann der Parameter âLoginGraceTime=0â gesetzt werden.
Quelle: opennet.ru
