📚 OpenSSL 1.0.1n/1.0.2b ASN.1 Encoder crypto/asn1/a_int.c Pufferüberlauf
💡 Newskategorie: Sicherheitslücken
🔗 Quelle: vuldb.com
In OpenSSL 1.0.1n/1.0.2b wurde eine kritische Schwachstelle gefunden. Hierbei betrifft es eine unbekannte Funktion der Datei crypto/asn1/a_int.c der Komponente ASN.1 Encoder. Mittels Manipulieren mit einer unbekannten Eingabe kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. Auswirkungen sind zu beobachten für Vertraulichkeit, Integrität und Verfügbarkeit. Zusammenfassend wird im Advisory festgehalten:
This issue affected versions of OpenSSL prior to April 2015. The bug causing the vulnerability was fixed on April 18th 2015, and released as part of the June 11th 2015 security releases. The security impact of the bug was not known at the time.
Die Schwachstelle wurde am 03.05.2016 durch Mark Brand und Ian Beer von Google als 20160503.txt in Form eines bestätigten Advisories (Website) an die Öffentlichkeit getragen. Bereitgestellt wird das Advisory unter openssl.org. Die Veröffentlichung wurde in Zusammenarbeit mit dem Hersteller durchgeführt. Eine eindeutige Identifikation der Schwachstelle wird mit CVE-2016-2108 vorgenommen. Die Schwachstelle ist relativ beliebt, und dies trotz ihrer hohen Komplexität. Die Umsetzung des Angriffs kann dabei über das Netzwerk erfolgen. Um eine Ausnutzung durchzusetzen, muss keine spezifische Authentisierung umgesetzt werden. Technische Details sind bekannt, ein verfügbarer Exploit hingegen nicht. Der folgende Code generiert das Problem:
while (!*n) {Das Advisory weist darauf hin:
However, a second, independent bug revealed that the ASN.1 parser (specifically, d2i_ASN1_TYPE) can misinterpret a large universal tag as a negative zero value. Large universal tags are not present in any common ASN.1 structures (such as X509) but are accepted as part of ANY structures. Therefore, if an application deserializes untrusted ASN.1 structures containing an ANY field, and later reserializes them, an attacker may be able to trigger an out-of-bounds write. This has been shown to cause memory corruption that is potentially exploitable with some malloc implementations. Applications that parse and re-encode X509 certificates are known to be vulnerable. Applications that verify RSA signatures on X509 certificates may also be vulnerable; however, only certificates with valid signatures trigger ASN.1 re-encoding and hence the bug. Specifically, since OpenSSL's default TLS X509 chain verification code verifies the certificate chain from root to leaf, TLS handshakes could only be targeted with valid certificates issued by trusted Certification Authorities.
Insgesamt 33 Tage schien es sich um eine nicht veröffentlichte Zero-Day Schwachstelle gehandelt zu haben. Während dieser Zeit erzielte er wohl etwa $25k-$50k auf dem Schwarzmarkt.
Ein Upgrade auf die Version 1.0.1o oder 1.0.2c vermag dieses Problem zu beheben. Die Schwachstelle lässt sich auch durch das Einspielen eines Patches beheben. Dieser kann von mta.openssl.org bezogen werden. Als bestmögliche Massnahme wird das Aktualisieren auf eine neue Version empfohlen. Das Erscheinen einer Gegenmassnahme geschah direkt nach der Veröffentlichung der Schwachstelle. Die Entwickler haben folglich sofort reagiert. Die Schwachstelle wird durch folgenden Code angegangen:
while (!*n && i > 1) {
CVSS
Base Score: 6.8 (CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P) [?]
Temp Score: 5.9 (CVSS2#E:ND/RL:OF/RC:C) [?]
CPE
Exploiting
Klasse: Pufferüberlauf
Lokal: Nein
Remote: Ja
Verfügbarkeit: Nein
Aktuelle Preisschätzung: $25k-$50k (0-day) / $10k-$25k (Heute)
Gegenmassnahmen
Empfehlung: Upgrade
Status: Offizieller Fix
Reaction Time: 33 Tage seit gemeldet
0-Day Time: 33 Tage seit gefunden
Exposure Time: 0 Tage seit bekannt
Upgrade: OpenSSL 1.0.1o/1.0.2c
Patch: mta.openssl.org
Timeline
31.03.2016Hersteller informiert
03.05.2016Advisory veröffentlicht
03.05.2016Gegenmassnahme veröffentlicht
04.05.2016VulDB Eintrag erstellt
04.05.2016VulDB Eintrag aktualisiert
Quellen
Advisory: 20160503.txt
Person: Mark Brand/Ian Beer
Firma: Google
Status: Bestätigt
Koordiniert: Ja
CVE: CVE-2016-2108 (mitre.org) (nvd.nist.org) (cvedetails.com)
Eintrag
Erstellt: 04.05.2016
Eintrag: 80.3% komplett
...