CVE-2021-3712
Pufferüberläufe beim Lesen von ASN.1-Zeichenfolgen
- Veröffentlicht
- 24.08.2021
- Aktualisiert
- 16.04.2026
- CNA zuweisen
- openssl
- Beweise beobachtet
- 08.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:HHoch · nächste 30 Tage
- Perzentil
- 98,9 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
ASN.1-Zeichenketten werden intern in OpenSSL als eine ASN1_STRING-Struktur dargestellt, die einen Puffer mit den Zeichenkettendaten und ein Feld mit der Pufferlänge enthält. Dies steht im Gegensatz zu normalen C-Zeichenketten, die als ein Puffer für die Zeichenkettendaten dargestellt werden und mit einem NUL-(0)-Byte abgeschlossen sind. Obwohl es keine strenge Anforderung ist, werden ASN.1-Zeichenketten, die mit OpenSSLs eigenen "d2i"-Funktionen (und anderen ähnlichen Parsing-Funktionen) geparst werden, sowie jede Zeichenkette, deren Wert mit der Funktion ASN1_STRING_set() gesetzt wurde, das Byte-Array in der ASN1_STRING-Struktur zusätzlich mit NUL abschließen. Es ist jedoch möglich, dass Anwendungen direkt gültige ASN1_STRING-Strukturen konstruieren, die das Byte-Array nicht mit NUL abschließen, indem sie die Felder "data" und "length" direkt in der ASN1_STRING-Struktur setzen. Dies kann auch durch die Verwendung der Funktion ASN1_STRING_set0() geschehen. Es wurde festgestellt, dass zahlreiche OpenSSL-Funktionen, die ASN.1-Daten ausgeben, davon ausgehen, dass das Byte-Array der ASN1_STRING mit NUL abgeschlossen ist, obwohl dies für direkt konstruierte Zeichenketten nicht garantiert ist. Wenn eine Anwendung das Drucken einer ASN.1-Struktur anfordert und diese ASN.1-Struktur ASN1_STRINGs enthält, die von der Anwendung direkt ohne NUL-Abschluss des "data"-Felds konstruiert wurden, kann ein Lesepufferüberlauf auftreten. Dasselbe kann auch während der Verarbeitung von Namensbeschränkungen (Name Constraints) von Zertifikaten auftreten (z. B. wenn ein Zertifikat direkt von der Anwendung konstruiert wurde, statt über die OpenSSL-Parsing-Funktionen geladen zu werden, und das Zertifikat nicht NUL-terminierte ASN1_STRING-Strukturen enthält). Es kann auch in den Funktionen X509_get1_email(), X509_REQ_get1_email() und X509_get1_ocsp() auftreten. Wenn ein Angreifer eine Anwendung dazu bringen kann, direkt eine ASN1_STRING zu konstruieren und diese dann über eine der betroffenen OpenSSL-Funktionen zu verarbeiten, könnte dieses Problem ausgelöst werden. Dies könnte zu einem Absturz führen (was einen Denial-of-Service-Angriff verursacht). Es könnte auch zur Offenlegung privater Speicherinhalte führen (z. B. privater Schlüssel oder sensibler Klartext). Behoben in OpenSSL 1.1.1l (Betroffen 1.1.1-1.1.1k). Behoben in OpenSSL 1.0.2za (Betroffen 1.0.2-1.0.2y).
Quellen
1Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.