[Generic/Kerberos] Schwachstelle in MIT Kerberos 5
(2011-03-16 10:54:25.851886+00)
Quelle:
http://archive.cert.uni-stuttgart.de/bugtraq/2011/03/msg00152.html
Eine Schwachstelle in den Routinen zur Verarbeitung von Daten, die zur Vorbereitung des Authentifizierungsprozesses zwischen Server und Client ausgetauscht werden (preauth data
), kann von einem Angreifer dazu ausgenutzt werden, beliebigen Programmcode auf dem beherbergenen System auszuführen. Es wird dringend empfohlen, die bereitgestellten Patches zu installieren.
Inhalt
- Zusammenfassung
- Betroffene Systeme
- Plattform
- Einfallstor
- Angriffsvoraussetzung
- Angriffsvektorklasse
- Auswirkung
- Typ der Verwundbarkeit
- Gefahrenpotential
- Beschreibung
- Workaround
- Gegenmaßnahmen
- Vulnerability ID
- Exploit Status
- Weitere Information zu diesem Thema
Zusammenfassung
- CVE-2011-0284 :
Betroffen: MIT krb5 bis einschließlich bis krb5-1.9 Plattform: alle (generic) Einfallstor: preauth data Angriffsvoraussetzung: Netzwerk, PKINIT-Konfiguration des Servers Angriffsvektorklasse: remote Auswirkung: system compromise Typ: Speicherverletzung Gefahrenpotential: sehr hch Workaround: bedingt Gegenmaßnahmen: Patch Vulnerability ID: CVE-2011-0284
MITKRB5-SA-2011-003
Betroffene Systeme
- MIT Kerberos 5 der Versionen krb5-1.9.x
- MIT Kerberos 5 der Versionen krb5-1.8.x
- MIT Kerberos 5 der Versionen krb5-1.7.x
- MIT Kerberos 5 früherer Versionen
Plattform
Alle Plattformen, für die MIT Kerberos 5 angeboten wird:- Unixoide Betriebssysteme
- Microsoft Windows
- Macintosh OS X
Einfallstor
- preauth data -
Im Rahmen des Authentifizierungsprozesses fordert der Server zur Überprüfung der Identität des Clients zusätzliche Daten an.
Angriffsvoraussetzung
- Zugriff auf ein Netzwerk, über das Anfragen an einen betroffenen Kerberos-Server gesendet werden können
(network) - Eingeschaltete Public Key Cryptography for Initial Authentication (RFC4556: PKINIT) (configuration)
Angriffsvektorklasse
- über eine Netzwerkverbindung
(remote)
Auswirkung
- Versetzen des Kerberos-Servers in einen unbenutzbaren Zustand
(denial of service) - Ausführung beliebigen Programmcodes auf dem beherbergen System mit administrativen Privilegien
(system compromise)
Typ der Verwundbarkeit
- Speicherverletzung
(memory corruption)
Gefahrenpotential
- sehr hoch
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
Eine double-free-Schwachstelle im Key Distribution Center (KDC) der Kerberos 5 Implementierung des MIT kann von einem Angreifer dazu ausgenutzt werden, beliebigen Programmcode auf dem beherbergenden System ausführen. Der Code wird dabei mit den Privilegien des entsprechenden Prozesses ausgeführt. Dies sind im Falle der Kerberos-Suite im Allgemeinen administrative Privilegien, weshalb die erfolgreiche Ausnutzung dieser Schwachstelle zur Kompromittierung des beherbergenden Systems führt.
Die Schwachstelle tritt bei der Verarbeitung von kryptographischen Daten auf, die durch den Client im Rahmen des Authentifizierungsprozesses an den Server geschickt werden (sog. preauth data). Dabei fordert der Server verschlüsselte Daten vom Client an, um nachzuprüfen, ob dieser in der Lage ist ein bestimmtes Datum, etwa einen Zeitstempel, mit seinem privaten Schlüssel zu verschlüsseln und damit nachweist, dass er im Besitz dieses Schlüssels ist. Damit kann der Server die Authentifizierung anhand des zughehörigen öffentlichen Schlüssels vornehmen.
Workaround
- Abschaltung von PKINIT
Diese Maßnahme führt zu wesentlichen Funktionseinschränkungen und mindert die Sicherheit der Kerberos-Infrastruktur, da PKINIT zur Unterbindung verschiedener Angriffsmöglichkeiten dient. Sie ist daher nicht empfehlenswert.
Gegenmaßnahmen
- Installation entsprechend aktualisierter MIT Kerberos 5 Releases, sobald verfügbar
- Installation entsprechend aktualisierter Pakete der verschiedenen Betriebssystemhersteller, bzw. Distributoren, sobald verfügbar
- Installation eines Patches:
diff --git a/src/kdc/do_as_req.c b/src/kdc/do_as_req.c index 46b5fa1..464cb6e 100644 - --- a/src/kdc/do_as_req.c +++ b/src/kdc/do_as_req.c @@ -741,6 +741,8 @@ prepare_error_as (struct kdc_request_state *rstate, krb5_kdc_req *request, pad->contents = td[size]->data; pad->length = td[size]->length; pa[size] = pad; + td[size]->data = NULL; + td[size]->length = 0; } krb5_free_typed_data(kdc_context, td); }
Vulnerability ID
Weitere Information zu diesem Thema
- Kerberos Homepage
- RFC4556: PKINIT
Exploit Status
- Code zur Demonstration der Ausnutzung der Schwachstelle ist verfügbar
(proof of concept)
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=1666