Wichtige OpenSSL-Schwachstellen durch TuxCare behoben CVE-2021-3711/3712
Nur wenige Bibliotheken sind so weit verbreitet wie OpenSSL. Sie ist auf allen Hardware-Plattformen und Betriebssystemen, in Anwenderprogrammen und im Internet der Dinge allgegenwärtig. Die Chancen stehen gut, dass der Webbrowser, mit dem Sie gerade diese Seite lesen, sich in irgendeiner Weise auf OpenSSL verlässt, um das "s" in "https" mit dem Webserver auszuhandeln.
Zusammen mit curl, zlib und glibc ist es einer der Namen, die Systemadministratoren zittern lassen, wenn sie im gleichen Satz wie "neue Sicherheitslücken gefunden" vorkommen. Leider ist heute wieder einer dieser Tage. Zwei neue Schwachstellen sind für OpenSSL aufgetaucht; eine wird als "hoher" Schweregrad und die andere als "niedriger" Schweregrad eingestuft. Sie betreffen alle OpenSSL 1.1.1 Versionen sowie die aktuellen Beta-/Alpha-Versionen von 3.0.0, aber die endgültige Version dieser Serie wird die Korrekturen enthalten.
Der Live-Patching-Service von TuxCare hat bereits Patches vorbereitet, die bereits - am selben Tag, an dem die Schwachstellen bekannt gegeben wurden - für EL8-basierte Distributionen sowie Debian 10, Ubuntu 18.04 und 20.04 ausgeliefert werden - also für diejenigen, die die betroffenen Versionen von OpenSSL enthalten.
Beginnend mit CVE-2021-3712 wurde festgestellt, dass an verschiedenen Stellen im OpenSSL-Code fälschlicherweise davon ausgegangen wird, dass ASN.1-Zeichenfolgen immer mit NUL terminiert werden. NUL-Terminierung ist ein Jargon für eine Folge von Zeichen, die mit dem NUL-Byte (0) endet. Programmierer verwenden sie oft, wenn sie das Ende einer Zeichenkette suchen - d.h. sie gehen sie durch, bis sie das besagte NUL-Byte finden. Zufälligerweise ist es möglich, diese Zeichenketten außerhalb von OpenSSL-Funktionen zu konstruieren und sie dann zur Verarbeitung an OpenSSL zu übergeben, was für einen entsprechend motivierten böswilligen Akteur zu Pufferüberläufen führen und ein Weg zur Speicherbeschädigung sein kann. Von früheren Exploits mit ähnlichen Techniken wissen wir, dass dies schließlich zu einer Privilegienerweiterung führen kann.
Es ist wichtig anzumerken, dass der Autor in der Commit-Nachricht für den Fix im OpenSSL Code Repository ausdrücklich erwähnt, dass der Fix nur für die Instanzen gilt, die er finden konnte. Weitere Verwendungen von ASN.1-Strings, von denen angenommen wird, dass sie NUL-terminiert sind, könnten sich noch in der Codebasis befinden. Es ist nicht undenkbar, dass in naher Zukunft weitere Codekorrekturen erforderlich sein werden, um Probleme wie dieses zu beheben.
Zu den Funktionen in OpenSSL, von denen bekannt ist, dass sie für dieses Problem anfällig sind, gehören unter anderem die Funktionen, die sich auf die Namensvalidierung in Zertifikaten beziehen, und zwar in Situationen, in denen das Zertifikat nicht direkt durch OpenSSL erstellt, sondern an OpenSSL zur Validierung übergeben wird.
Die als "hoch" eingestufte Sicherheitslücke CVE-2021-3711 bezieht sich auf die SM2-Entschlüsselung. SM2 ist ein auf elliptischen Kurven basierender Algorithmus. OpenSSL enthält mehrere verschiedene Funktionen, die diesen Algorithmus unterstützen, einschließlich EVP_PKEY_DECRYPT(). Diese Funktion wird typischerweise zweimal aufgerufen, einmal um die Größe des Puffers zu ermitteln, der für die Daten benötigt wird, und einmal um die Entschlüsselung durchzuführen, wobei diesmal auch die richtige Größe des Puffers an die Funktion übergeben wird.
Es hat sich herausgestellt, dass es aufgrund eines Fehlers in der Implementierung dieser Funktion möglich ist, beim ersten Aufruf eine Puffergröße zu erhalten, die kleiner ist als die erforderliche Puffergröße für den zweiten Aufruf. In diesem Fall übergibt die aufrufende Anwendung einen Puffer, der zu klein ist, um die gesamten Daten aufzunehmen, was zu einem Pufferüberlauf führt. Dies kann zu einer Beschädigung des Speichers führen, was, wie bereits erwähnt, bei entsprechend motivierten Angreifern nachweislich zu gefährlicheren Ergebnissen führt.
Das TuxCare-Team verfolgt diese Schwachstellen weiterhin und bewertet, wie sie sich auf die Systeme unserer Service-Abonnenten auswirken können, und bietet gegebenenfalls Korrekturen an.
Wenn Sie mehr über die Dienstleistungen von TuxCare wissen möchten, finden Sie hier weitere Informationen.