LibTomCrypt bis 1.18.2 UTF-8 der_decode_utf8_string.c der_decode_utf8_string Information Disclosure
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 7.8 | $0-$5k | 0.00 |
Zusammenfassung
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.
Details
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.
Produkt
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 8.2VulDB 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: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍
NVD Base Score: 🔍
Exploiting
Klasse: Information DisclosureCWE: 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-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: PatchStatus: 🔍
0-Day Time: 🔍
Exploit Delay Time: 🔍
Patch: github.com
Timeline
03.10.2019 🔍03.10.2019 🔍
08.10.2019 🔍
09.10.2019 🔍
03.01.2024 🔍
Quellen
Advisory: 507Person: 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
Eintrag
Erstellt: 08.10.2019 15:47Aktualisierung: 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
Submit
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.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.