OpenSSL 1.0.1s/1.0.2g ASN.1 BIO crypto/asn1/a_d2i_fp.c d2i_CMS_bio Denial of Service

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
8.5$0-$5k0.00

Zusammenfassunginfo

Eine Schwachstelle wurde in OpenSSL 1.0.1s/1.0.2g entdeckt. Sie wurde als problematisch eingestuft. Betroffen hiervon ist die Funktion d2i_CMS_bio der Datei crypto/asn1/a_d2i_fp.c der Komponente ASN.1 BIO. Dank Manipulation mit unbekannten Daten kann eine Denial of Service-Schwachstelle ausgenutzt werden. Diese Schwachstelle trägt die Bezeichnung CVE-2016-2109. Der Angriff kann remote ausgeführt werden. Es gibt keinen verfügbaren Exploit. Die Aktualisierung der betroffenen Komponente wird empfohlen.

Detailsinfo

Eine kritische Schwachstelle wurde in OpenSSL 1.0.1s/1.0.2g (Network Encryption Software) ausgemacht. Betroffen davon ist die Funktion d2i_CMS_bio der Datei crypto/asn1/a_d2i_fp.c der Komponente ASN.1 BIO. Durch Beeinflussen mit einer unbekannten Eingabe kann eine Denial of Service-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-399. Dies wirkt sich aus auf die Verfügbarkeit. CVE fasst zusammen:

The asn1_d2i_read_bio function in crypto/asn1/a_d2i_fp.c in the ASN.1 BIO implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h allows remote attackers to cause a denial of service (memory consumption) via a short invalid encoding.

Die Schwachstelle wurde am 03.05.2016 durch Brian Carpenter von Oracle als 20160503.txt in Form eines bestätigten Advisories (Website) veröffentlicht. Auf openssl.org kann das Advisory eingesehen werden. Die Herausgabe geschah hierbei in Zusammenarbeit mit dem Hersteller. Die Identifikation der Schwachstelle findet seit dem 29.01.2016 als CVE-2016-2109 statt. Der Angriff kann über das Netzwerk passieren. Das Ausnutzen erfordert keine spezifische Authentisierung. Zur Schwachstelle sind technische Details bekannt, ein verfügbarer Exploit jedoch nicht. Der folgende Code ist für dieses Problem verantwortlich:

if (!BUF_MEM_grow_clean(b, len + want)) {
   ASN1err(ASN1_F_ASN1_D2I_READ_BIO, ERR_R_MALLOC_FAILURE);
   goto err;
}

while (want > 0) {
   i = BIO_read(in, &(b->data[len]), want);
   if (i <= 0) {
      ASN1err(ASN1_F_ASN1_D2I_READ_BIO,
              ASN1_R_NOT_ENOUGH_DATA);

      goto err;
   }

   len += i;
   want -= i;
}
Das Advisory weist darauf hin:
When ASN.1 data is read from a BIO using functions such as d2i_CMS_bio() a short invalid encoding can casuse allocation of large amounts of memory potentially consuming excessive resources or exhausting memory.

Dabei muss 29 Tage als nicht veröffentlichte Zero-Day Schwachstelle ausgegangen werden. Während dieser Zeit erzielte er wohl etwa $5k-$25k auf dem Schwarzmarkt. Für den Vulnerability Scanner Nessus wurde am 11.05.2016 ein Plugin mit der ID 91033 (RHEL 7 : openssl (RHSA-2016:0722)) herausgegeben, womit die Existenz der Schwachstelle geprüft werden kann. Es wird der Family Red Hat Local Security Checks zugeordnet und im Kontext l ausgeführt. Der kommerzielle Vulnerability Scanner Qualys bietet das Plugin 196457 (Ubuntu Security Notification for Openssl Vulnerabilities (USN-2959-1)) zur Prüfung der Schwachstelle an.

Ein Upgrade auf die Version 1.0.1t oder 1.0.2h vermag dieses Problem zu beheben. Die Schwachstelle lässt sich auch durch das Einspielen eines Patches beheben. Dieser kann von git.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 entsprechend sofort reagiert. Die Schwachstelle wird durch folgenden Code angegangen:

size_t chunk_max = ASN1_CHUNK_INITIAL_SIZE;

while (want > 0) {
   size_t chunk = want > chunk_max ? chunk_max : want;

   if (!BUF_MEM_grow_clean(b, len + chunk)) {
      ASN1err(ASN1_F_ASN1_D2I_READ_BIO, ERR_R_MALLOC_FAILURE);
      goto err;
   }
   want -= chunk;
   while (chunk > 0) {
      i = BIO_read(in, &(b->data[len]), chunk);
      if (i <= 0) {
         ASN1err(ASN1_F_ASN1_D2I_READ_BIO,
                 ASN1_R_NOT_ENOUGH_DATA);
         goto err;
      }

      len += i;
      chunk -= i;
   }
   if (chunk_max < INT_MAX/2)
       chunk_max *= 2;
}
Das Advisory stellt fest:
The memory based functions such as d2i_X509() are *not* affected. Since the memory based functions are used by the TLS library, TLS applications are not affected.

Unter anderem wird der Fehler auch in den Datenbanken von Tenable (91033) und SecurityFocus (BID 91787†) dokumentiert. Unter tools.cisco.com werden zusätzliche Informationen bereitgestellt. Die Schwachstellen VDB-76354, VDB-78584, VDB-78603 und VDB-78601 sind ähnlich. If you want to get best quality of vulnerability data, you may have to visit VulDB.

Produktinfo

Typ

Name

Version

Lizenz

Support

  • end of life (old version)

Webseite

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 8.7
VulDB Meta Temp Score: 8.5

VulDB Base Score: 9.8
VulDB Temp Score: 9.4
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

NVD Base Score: 7.5
NVD Vector: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍

NVD Base Score: 🔍

Exploitinginfo

Klasse: Denial of Service
CWE: CWE-399 / CWE-404
CAPEC: 🔍
ATT&CK: 🔍

Physisch: Nein
Lokal: Nein
Remote: Ja

Verfügbarkeit: 🔍
Status: Nicht definiert

EPSS Score: 🔍
EPSS Percentile: 🔍

Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Nessus ID: 91033
Nessus Name: RHEL 7 : openssl (RHSA-2016:0722)
Nessus Datei: 🔍
Nessus Risiko: 🔍
Nessus Family: 🔍
Nessus Context: 🔍

OpenVAS ID: 841567
OpenVAS Name: SuSE Update for openssl openSUSE-SU-2016:1240-1 (openssl)
OpenVAS Datei: 🔍
OpenVAS Family: 🔍

Qualys ID: 🔍
Qualys Name: 🔍

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

Reaktionszeit: 🔍
0-Day Time: 🔍
Exposure Time: 🔍

Upgrade: OpenSSL 1.0.1t/1.0.2h
Patch: c62981390d6cf9e3d612c489b8b77c2913b25807

Timelineinfo

29.01.2016 🔍
04.04.2016 +66 Tage 🔍
03.05.2016 +29 Tage 🔍
03.05.2016 +0 Tage 🔍
04.05.2016 +1 Tage 🔍
04.05.2016 +0 Tage 🔍
11.05.2016 +7 Tage 🔍
15.07.2016 +65 Tage 🔍
28.07.2022 +2204 Tage 🔍

Quelleninfo

Produkt: openssl.org

Advisory: 20160503.txt
Person: Brian Carpenter
Firma: Oracle
Status: Bestätigt
Bestätigung: 🔍
Koordiniert: 🔍

CVE: CVE-2016-2109 (🔍)
GCVE (CVE): GCVE-0-2016-2109
GCVE (VulDB): GCVE-100-83258

OVAL: 🔍

SecurityFocus: 91787 - Oracle July 2016 Critical Patch Update Multiple Vulnerabilities
SecurityTracker: 1035721

Diverses: 🔍
Siehe auch: 🔍

Eintraginfo

Erstellt: 04.05.2016 11:34
Aktualisierung: 28.07.2022 08:05
Anpassungen: 04.05.2016 11:34 (83), 12.11.2018 08:32 (14), 28.07.2022 08:05 (4)
Komplett: 🔍
Cache ID: 216::103

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!