OpenSSL-Lücke: 11 Bytes bringen Server an die Speichergrenze

Eine neu entdeckte Schwachstelle in OpenSSL kann Angreifern ermöglichen, Server mit einer manipulierten Netzwerkverbindung schrittweise an die Speichergrenze zu bringen.

Eine neu entdeckte Schwachstelle in OpenSSL kann Angreifern ermöglichen, Server mit einer manipulierten Netzwerkverbindung schrittweise an die Speichergrenze zu bringen.

Das Okta Red Team hat das Problem entdeckt und bezeichnet die Denial-of-Service-Lücke als „HollowByte“. Für den Angriff genügt demnach eine manipulierte Nutzlast von nur 11 Bytes; eine Anmeldung am Zielsystem ist nicht erforderlich.

Die Schwachstelle betrifft die Verarbeitung des TLS-Handshakes. OpenSSL liest dabei eine Längenangabe aus dem Header einer Nachricht und reserviert auf dieser Grundlage bereits Speicher, bevor die angekündigten Daten vollständig eingetroffen sind. Ein Angreifer kann diese Angabe manipulieren und so eine Speicherreservierung von bis zu 131 Kilobyte auslösen. Anschließend hält die Verbindung den zuständigen Verarbeitungsthread offen und wartet auf Daten, die nie eintreffen.

Der Angriff kann zudem den Speicher langfristig fragmentieren. Trennt der Angreifer die Verbindung, gibt OpenSSL den reservierten Speicher zwar frei. Die Speicherverwaltung der GNU C Library behält viele mittelgroße Speicherblöcke jedoch zunächst für eine spätere Wiederverwendung. Durch zahlreiche Verbindungen mit unterschiedlichen Größenangaben kann ein Angreifer die Wiederverwendung erschweren und den tatsächlich vom Prozess belegten Arbeitsspeicher kontinuierlich erhöhen. Der Speicherbedarf sinkt laut den Tests erst wieder vollständig, wenn der betroffene Prozess beendet wird.

In Tests mit einem ungepatchten OpenSSL-Server unter NGINX führte der Angriff auf einem System mit einem Gigabyte Arbeitsspeicher dazu, dass der Out-of-Memory-Killer den Prozess beendete, nachdem 547 Megabyte Speicher blockiert oder fragmentiert worden waren. Auf einem System mit 16 Gigabyte Arbeitsspeicher beanspruchte der Angriff 25 Prozent des Gesamtspeichers, ohne das Limit für gleichzeitig geöffnete Verbindungen zu erreichen. Übliche Schutzmaßnahmen, die lediglich die Zahl paralleler Verbindungen begrenzen, greifen daher nicht zuverlässig.

Die mögliche Reichweite der Schwachstelle ergibt sich aus der weiten Verbreitung von OpenSSL. Betroffen sein können unter anderem Webserver wie Apache und NGINX, Laufzeitumgebungen wie Node.js, Python, Ruby und PHP sowie Datenbanken wie MySQL und PostgreSQL.

Diese Korrektur für die Lücke wurde ohne gesonderte Ankündigung in das Release OpenSSL v4.0.1 sowie als stiller Backport in die Versionen 3.6.3, 3.5.7, 3.4.6 und 3.0.21 integriert.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben