Stabsstelle Informationssicherheit der
Universität Stuttgart (RUS-CERT)
https://cert.uni-stuttgart.de
logo
Meldung Nr: RUS-CERT-903

[Generic/OpenSSL] Fehler im ASN.1-Parser (Update)
(2002-08-01 09:41:45.206762+00)

Quelle: http://cert.uni-stuttgart.de/archive/bugtraq/2002/07/msg00380.html

Die 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

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

PubkeyAuthentication no
abgeschaltet werden. Gegebenenfalls kann auch die Host-basierte Authentifizierung ("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

Um sicherzustellen, daß alle Programme die neue Fassungen der OpenSSL-Bibliotheken verwenden, sollte das System nach der Installation gebootet werden.

Vulnerability ID

Weitere Information zu diesem Thema

Revisionen dieser Meldung

(fw)

Weitere Artikel zu diesem Thema:

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 © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/


https://cert.uni-stuttgart.de/ticker/article.php?mid=903