Sicherheitslücken: OpenSSL-Update verursacht ABI-Probleme
OpenSSL veröffentlicht Updates für kleinere Sicherheitslücken - dabei ist den Entwicklern ein Fehler unterlaufen: Durch eine veränderte Datenstruktur ändert sich die Binärschnittstelle der Bibliothek, was zu Fehlfunktionen führen kann.

OpenSSL hat für mehrere Versionszweige seiner Software neue Versionen veröffentlicht. Die aktuellste Version ist nun 1.0.2b, auch für ältere Versionszweige wurden Updates herausgegeben. Das Security-Advisory listet sieben Sicherheitslücken, die mit diesem Update behoben worden sind. Kritische Lücken sind nicht darunter, am relevantesten ist ein Workaround für die Logjam-Lücke.
Geänderte Datenstruktur bricht ABI
Administratoren, die das Update besonders schnell eingespielt haben, bekommen möglicherweise Probleme. Wenige Stunden nach der Veröffentlichung meldete sich der Programmierer Dan McDonald auf der OpenSSL-Entwickler-Mailing-Liste und wies auf ein Problem hin: Die neuen Versionen ändern die Datenstruktur HMAC_CTX, die Teil der öffentlichen API von OpenSSL ist.
Eine solche veränderte Datenstruktur ist nichts Ungewöhnliches, allerdings führt man derartige Änderungen üblicherweise nur bei großen Versionssprüngen durch. Das Problem: Durch diese Änderung verändert sich die Binärschnittstelle der OpenSSL-Bibliothek, die sogenannte ABI.
Um Probleme mit ABI-Änderungen zu vermeiden, wird bei solchen großen Versionssprüngen üblicherweise die Versionsnummer im Dateinamen der Bibliothek geändert, aus libssl.so.1.0.0 könnte beispielsweise libssl.so.1.0.1 werden. In diesem Fall ist das aber nicht geschehen. Alle Programme, die eine Bibliothek verwenden, müssen bei einer ABI-Umstellung neu kompiliert werden.
ABI-Änderungen innerhalb eines Versionszweigs ein No-Go
Nutzt man ein Programm, das mit der alten ABI von OpenSSL kompiliert wurde, kann es mit der neuen Version zu Fehlfunktionen kommen. Probleme könnten etwa Nutzer von älteren OpenSSH-Versionen bekommen. OpenSSH 6.6 und neuer nutzen allerdings eine eigene HMAC-Implementierung, dadurch tauchen hier keine Probleme auf.
OpenSSL-Entwickler Matt Caswell schrieb, das Entwicklerteam berate gerade, wie sie mit der Sache umgingen. Eigentlich sind ABI-Änderungen innerhalb eines Versionszweiges laut Caswell ein No-Go. Absichtlich erfolgte die Änderung daher wohl nicht.
Logjam-Workaround und kleinere Sicherheitsfixes
Die Sicherheitsfixes in der neuen Version sind überwiegend unspektakulär. Die Logjam-Lücke im Diffie-Hellman-Schlüsselaustausch ist ein Protokollproblem und kein Fehler von OpenSSL, aber um Probleme zu vermeiden, wurde in OpenSSL eine Mindestgröße für den sogenannten Modulus von Diffie Hellman eingeführt. Dieser muss jetzt mindestens 768 Bit groß sein, später soll dieses Minimum auf 1024 Bit angehoben werden.
Weiterhin wurde eine Endlosschleife in der Verarbeitung der Parameter von elliptischen Kurven gefunden. Ein Angreifer kann damit die Systemauslastung eines Servers oder Clients in die Höhe treiben. Ein ungültiger Speicher-Lesezugriff in der Funktion X509_cmp_time wurde unabhängig voneinander von Google-Mitarbeiter Robert Swiecki und vom Autor dieses Artikels entdeckt.
Die Google-Mitarbeiterin Emilia Käsper fand eine Race-Condition im Code zur Verwaltung von TLS-Session-Tickets, die zu einem Double-Free-Fehler führen kann. Daneben fanden sich noch eine Reihe von sicherheitskritischen Fehlern in seltener genutzten Protokollen wie DTLS, CMS und PKCS #7.
Nachtrag vom 12. Juni 2015, 17:59 Uhr
Inzwischen hat OpenSSL die Versionen 1.0.2c und 1.0.1o veröffentlicht, die Änderung der ABI wird darin wieder rückgängig gemacht. Nutzer sollten bevorzugt auf diese Versionen aktualisieren.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Andere wiederum urteilen über Menschen, über die sie nichts wissen und schreiben ihnen...