LibTomCrypt bis 1.18.2 UTF-8 der_decode_utf8_string.c der_decode_utf8_string Information Disclosure

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

Zusammenfassunginfo

Eine Schwachstelle, die als kritisch eingestuft wurde, wurde in LibTomCrypt bis 1.18.2 gefunden. Hierbei betrifft es die Funktion der_decode_utf8_string der Datei der_decode_utf8_string.c der Komponente UTF-8 Handler. Dank der Manipulation mit unbekannten Daten kann eine Information Disclosure-Schwachstelle ausgenutzt werden. Diese Schwachstelle wird als CVE-2019-17362 gehandelt. Der Angriff lässt sich über das Netzwerk starten. Ausserdem ist ein Exploit verfügbar. Es wird empfohlen, einen Patch anzuwenden, um dieses Problem zu beheben.

Detailsinfo

Es wurde eine kritische Schwachstelle in LibTomCrypt bis 1.18.2 gefunden. Es betrifft die Funktion der_decode_utf8_string der Datei der_decode_utf8_string.c der Komponente UTF-8 Handler. Mittels Manipulieren mit einer unbekannten Eingabe kann eine Information Disclosure-Schwachstelle ausgenutzt werden. Im Rahmen von CWE wurde eine Klassifizierung als CWE-125 vorgenommen. Die Auswirkungen sind bekannt für Vertraulichkeit, Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:

In LibTomCrypt through 1.18.2, the der_decode_utf8_string function (in der_decode_utf8_string.c) does not properly detect certain invalid UTF-8 sequences. This allows context-dependent attackers to cause a denial of service (out-of-bounds read and crash) or read information from other memory locations via carefully crafted DER-encoded data.

Die Schwachstelle wurde am 03.10.2019 durch Luigi Coniglio (werew) in Form eines bestätigten Bug Reports (GitHub Repository) publiziert. Das Advisory findet sich auf github.com. Die Identifikation der Schwachstelle wird seit dem 09.10.2019 mit CVE-2019-17362 vorgenommen. Der Angriff kann über das Netzwerk erfolgen. Zur Ausnutzung ist keine spezifische Authentisierung erforderlich. Es sind technische Details sowie ein öffentlicher Exploit zur Schwachstelle bekannt. Folgender Code zeichnet sich für das Problem veantwortlich:

/* proceed to decode */
for (y = 0; x < inlen; ) {
  /* get first byte */
  tmp = in[x++];

  /* count number of bytes */
  for (z = 0; (tmp & 0x80) && (z <= 4); z++, tmp = (tmp << 1) & 0xFF);

  if (z > 4 || (x + (z - 1) > inlen)) {
	 return CRYPT_INVALID_PACKET;
  }

  /* decode, grab upper bits */
  tmp >>= z;

  /* grab remaining bytes */
  if (z > 1) { --z; }
  while (z-- != 0) {
	 if ((in[x] & 0xC0) != 0x80) {
		return CRYPT_INVALID_PACKET;
	 }
	 tmp = (tmp << 6) | ((wchar_t)in[x++] & 0x3F);
  }

  if (y < *outlen) {
	 out[y] = tmp;
  }
  y++;
}

Ein öffentlicher Exploit wurde durch Luigi Coniglio (werew) entwickelt und direkt nach dem Advisory veröffentlicht. Unter github.com wird der Exploit zum Download angeboten. Er wird als proof-of-concept gehandelt. Der durch den Exploit genutzte Code gestaltet sich wie folgt:

char *poc1 = "\x30\x04"                  // Start DER-sequence of length 4
             "\x0c\x02\xbf\xbf"          // Start UTF8 string of actual length 2 and evaluated length 3
             "\xaa"                      // One byte padding
             "\x30\x84\xff\xff\xff\xff"; // Start DER-sequence of length 0xffffffff (will very likely cause a crash)

Die Schwachstelle lässt sich durch das Einspielen eines Patches lösen. Dieser kann von github.com bezogen werden.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Produktinfo

Name

Version

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 8.2
VulDB Meta Temp Score: 7.8

VulDB Base Score: 7.3
VulDB Temp Score: 6.6
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

NVD Base Score: 9.1
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: Information Disclosure
CWE: CWE-125 / CWE-119
CAPEC: 🔍
ATT&CK: 🔍

Physisch: Nein
Lokal: Nein
Remote: Ja

Verfügbarkeit: 🔍
Zugang: öffentlich
Status: Proof-of-Concept
Autor: Luigi Coniglio (werew)
Download: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Threat Intelligenceinfo

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

Gegenmassnahmeninfo

Empfehlung: Patch
Status: 🔍

0-Day Time: 🔍
Exploit Delay Time: 🔍

Patch: github.com

Timelineinfo

03.10.2019 🔍
03.10.2019 +0 Tage 🔍
08.10.2019 +5 Tage 🔍
09.10.2019 +1 Tage 🔍
03.01.2024 +1547 Tage 🔍

Quelleninfo

Advisory: 507
Person: Luigi Coniglio (werew)
Status: Bestätigt

CVE: CVE-2019-17362 (🔍)
GCVE (CVE): GCVE-0-2019-17362
GCVE (VulDB): GCVE-100-142995
scip Labs: https://www.scip.ch/?labs.20161013

Eintraginfo

Erstellt: 08.10.2019 15:47
Aktualisierung: 03.01.2024 19:06
Anpassungen: 08.10.2019 15:47 (66), 09.10.2019 13:55 (2), 28.09.2020 06:41 (1), 03.01.2024 18:59 (4), 03.01.2024 19:06 (1)
Komplett: 🔍
Einsender: werew
Editor: werew
Cache ID: 216::103

Submitinfo

Akzeptiert

  • Submit #92: Out-of-bounds read in LibTomCrypt 1.18.2 and earlier versions (von werew)

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

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

Want to know what is going to be exploited?

We predict KEV entries!