
OpenSSL. (Foto: Joyseulay / shutterstock)
Bei dem mit einem hohen Risiko bewerteten Problem CVE-2021-3711 handelt es sich um einen Pufferüberlauf in der Entschlüsselung von mit SM2 verschlüsselten Daten. Angreifer könnten diese Lücke aus der Entfernung ausnutzen, indem sie speziell manipulierte SM2-Inhalte übertragen und so Daten außerhalb des dafür vorgeschriebenen Bereichs überschreiben. Als Folge droht ein Absturz, mit entsprechender Vorbereitung könnte dadurch aber auch eigener Code in die Anwendung eingeschleust und zur Ausführung gebracht werden.
Laut Notiz zu der Lücke auf OpenSSL.org konnten so bis zu 62 Bytes im Heap überschrieben werden.
Die zweite Lücke ist schon länger vorhanden
Auch die mit einem mittleren Risiko bewertete Schwachstelle CVE-2021-3712 basiert auf einem überlaufenden Puffer, diesmal jedoch nur beim Lesen. Hier wurden ASN.1-Strings innerhalb von OpenSSL als ASN1_STRING-Strukturen abgelegt.
ASN.1-Strings sind ganz normale, mit einem NUL-Byte terminierte Strings, während ASN1_STRING-Strukturen den String als Zeichenfolge und die Länge des Strings enthalten. Hier war es nicht sicher gestellt, dass die Zeichenfolgen in den ASN1_STRING-Strukturen inklusive dem NUL-Byte abgelegt waren. Wenn das NUL-Byte fehlt, wird ein ASN.1-String ausgelesen, bis zufällig eines kommt – so können dann zum Beispiel aus Versehen geheime Daten wie Private Keys ausgegeben werden, sollten sie im Speicher direkt anschließend an die Zeichenkette abgelegt sein.
Diese zweite Lücke war auch in der OpenSSL-Linie 1.0.2 vorhanden; auch für diese Versionsreihe steht ein Update in der Version OpenSSL 1.0.2za zur Verfügung. Der schwerwiegendere Fehler konnte in der 1.0.2-Reihe allerdings nicht auftreten.
Autor des Artikels ist Boris Mayer.