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

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.

Produktinfo

Name

Version

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB CVSS-B Score: 🔍
VulDB CVSS-BT Score: 🔍
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
ATT&CK: Unbekannt

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 (🔍)
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

Submitinfo

Akzeptiert

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

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

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

Want to stay up to date on a daily basis?

Enable the mail alert feature now!