[Generic/OpenSSL] Fehler im ASN.1-Parser (Update)
(2002-08-01 11:41:45.206762+02)
Quelle:
http://cert.uni-stuttgart.de/archive/bugtraq/2002/07/msg00380.htmlDie OpenSSL-Bibliothek enthält einen ASN.1-Parser zur Verarbeitung von ASN.1-Daten. In diesem Parser wurde eine Schwachstelle entdeckt, die zumindest Denial-of-Service-Angriffe (DoS) ermöglicht. Auch ein Teil der Kryptofunktionen verwenden intern diesen Parser, so daß Programme wie OpenSSH betroffen sind.
Betroffene Systeme
- Systeme, die OpenSSL-Versionen bis einschließlich 0.9.6d bzw. 0.9.7-beta2 verwenden.
Einfallstor
ASN.1-Daten, wie sie bei SSL, TLS, S/MIME oder der Zertifikatserstellung
vorkommen. Diese können z.B. über HTTPS (TCP-Port 443), SMTP (TCP-Port
25), IMAPS (TCP-Port 993) oder POP3S (TCP-Port 995) übertragen werden.
Auswirkung
Ein Angreifer kann einen Server-Prozeß durch
die Übertragung entsprechend gestalteter ASN.1 Daten zum Absturz
bringen (Denial of Service, DoS).
Typ der Verwundbarkeit
Denial of Service
Gefahrenpotential
mittel bis hoch
(Hinweise zur
Einstufung
des Gefahrenpotentials.)
Kontext
Bestimmte Protokolle wie SSL und TLS verwenden die sogenannte
Abstract Syntax Notation, Version 1 (ASN.1), um Daten
in portabler Weise in einen Strom von Bytes umzuwandeln.
Beschreibung
Der Teil des ASN.1-Parsers von OpenSSL, der Längenangaben extrahiert,
liefert negative Längen, falls die ASN.1-Längenangaben sich nicht
in dem verwendeten C-Datentyp ausdrücken lassen. Dadurch kann
ein Angreifer einen Prozeß zum Absturz bringen,
der diese Routinen zum Verarbeiten
von Daten benutzt, die vom Angreifer entsprechend präpariert werden.
Eventuell sind weitere Angriffe möglich (der Fehler ist der Apache-Chunked-Encoding-Schwachstelle recht ähnlich, und diese galt ursprünglich auch nicht als ausnutzbar) -- da die unten angebenen Patches aber weitere, bekanntermaßen kritischere Schwachstellen beheben, muß sowieso ein Update eingespielt werden.
Hinweis: Die zunächst von den OpenSSL-Entwicklern verbreiteten Patches waren teilweise nicht vollständig und erhielten (entgegen den Angaben) nicht den Patch für diese Schwachstelle. Ferner enthält das Red-Hat-Update diesen Patch nicht. Außerdem kann ein C-Compiler die von den OpenSSH-Entwicklern zusätzlich eingeführte Überprüfung wegoptimieren, da in allen Fällen, in denen die Überprüfung fehlschlägt, bereits vorher Code ausgeführt wurde, der zu undefined behavior nach der C-Norm führt. GCC führt bislang diese Optimierung jedoch nicht durch.
Auswirkungen auf OpenSSH
Einige Schnittstellen, die von OpenSSL angeboten werden, und die auf
den ersten Blick nicht ASN.1-bezogen sind, verwenden intern doch
den ASN.1-Parser. Aufgrund der Arbeitsweise des Parsers können,
abhängig von den Eingabedaten, sehr viele verschiedene Hilfsroutinen
aufgerufen werden, so daß sich die Konsequenzen nur schwer abschätzen
lassen.
Eine dieser Schnittstelle, RSA_verify,
wird von OpenSSH im Rahmen der Public-Key-Authentifizierung
(entweder bei einzelnen Nutzern oder Host-basiert)
von Protokoll-Version 2 dazu
verwendet, die vom Client gelieferte Signatur zu prüfen.
Eine anonyme Ausnutzung der Schwachstelle in Verbindung mit OpenSSH
scheint nicht möglich, da diese Schnittstelle verlangt, daß der vom
Client verwendete öffentliche Schlüssel beim Server hinterlegt ist.
Andere Authentifizierungsmethoden (Paßwort, RSA-Authentifizierung bei Protokoll-Version 1, DSA-Authentifizierung bei Version 2) sind davon nicht betroffen, da sie entweder von OpenSSH implementiert werden oder (im Falle von DSA) eine OpenSSL-Schnittstelle verwenden, die den ASN.1-Parser umgeht.
Um ein Ändern des Host-Keys zu verhindern, sollte als Gegenmaßnahme bei nicht vertrauenswürdigen lokalen Benutzern die Public-Key-Authentifizerung über
abgeschaltet werden. Gegebenenfalls kann auch die Host-basierte Authentifizierung ("PubkeyAuthentication no
HostbasedAuthentication no",
dies ist die Voreinstellung)
ausgeschaltet werden; falls ein Angreifer sich
jedoch über diesen Mechanismus authentifizieren kann, wird er sich kaum
mit dem Ausnutzen dieser Schwachstelle aufhalten. (Das Deaktivieren
der Unterstützung von Protokoll-Version 2 ist auch eine wirksame
Gegenmaßnahme, führt aber dazu, daß sich die Benutzer ebenfalls
nicht mehr mit ihrem gewohnten öffentlichen Schlüssel authentifizieren
können; außerdem wechselt der Fingerabdruck des Host-Schlüssels des
Servers.)
Gegenmaßnahmen
- Update auf OpenSSL 0.9.6e.
- Einspielen des Patches aus dem Advisory.
- Für ältere Versionen sollte ein separat verfügbarer
Patch
(zusätzlich zu den Patches für weitere
Schwachstellen) eingespielt
werden.
Achtung: Diese Patches beheben die Schwachstelle nicht vollständig zuverlässig. Compiler können die zusätzliche Überprüfung wegoptimieren. - Einspielen eines Hersteller-Updates.
Vulnerability ID
Weitere Information zu diesem Thema
Revisionen dieser Meldung
- V.1.0 (2002-07-30)
- V.2.0 (2002-07-31) Patches waren unvollständig.
- V.3.0 (2002-07-31) OpenSSH ist auch betroffen.
Weitere Artikel zu diesem Thema:
- [Generic/OpenSSL] Mehrere Schwachstellen in OpenSSL (2003-10-03)
Eine Schwachstelle in den OpenSSL-Bibliotheken ermöglicht einem Angreifer die Ausführung beliebigen Programmcodes mit den Privilegien des benutzenden Prozesses, zwei weitere Schwachstellen können dazu führen, daß das SSL-System in einen unbenutzbaren Zustand gerät. - [Generic/OpenSSL] Fehler im Server- und Client-Code für SSL 2 und 3 (2002-07-30)
In OpenSSL sind mehrere Schwachstellen im Programmcode zur Verarbeitung von SSL-Verbindungen (sowohl auf Client- als auch auf Server-Seite) entdeckt worden.
Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der
Universität Stuttgart recherchiert und zusammengestellt. Die Universität
Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel
darf ausschließlich in unveränderter Form und nur zusammen mit diesem
Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine
Veröffentlichung unter diesen Bedingungen an anderer Stelle ist
ausdrücklich gestattet.
Copyright © 2013 RUS-CERT, Universität Stuttgart, http://cert.uni-stuttgart.de/
http://cert.uni-stuttgart.de/ticker/article.php?mid=903
