
SpookySSL CVE-2022-3602 SSLv3 Scanner für Windows, Linux, macOS
SpookySSL CVE-2022-3602 SSLv3 Scanner für Windows, Linux, macOS
Zunächst tritt das Problem bei der Bestimmung der Byte-Größe auf. Wenn die Byte-Größe bestimmt wird, kann – falls Ihnen aufgefallen ist – der NULL-Wert (also leer/null) nicht definiert sein, sodass die Byte-Länge auf null gesetzt werden kann. Im unteren Befehl bedeutet der Teil, der mit xn-- beginnt, die direkte Umwandlung von Domainnamen, die in anderen Alphabeten (z. B. aus dem Chinesischen als Punycode umgewandelt) geschrieben sind, in das lateinische Alphabet. Innerhalb der If-Schleife weist der memcpy-Befehl einen Stack-Bereich der Größe delta + 1 im Speicher zu und schreibt den outptr-Wert in diesen Bereich. Wenn ein NULL-Wert eingegeben wird, wird nur ein 1-Byte-Platz zugewiesen, wodurch zwei Leerzeichen einen Pufferüberlauf verursachen.
Für detaillierte Informationen: https://github.com/openssl/openssl/commit/c42165b5706e42f67ef8ef4c351a9a4c5d21639a
Zunächst muss man die Remote Code Execution (RCE) kennen.
Remote Code Execution (RCE)-Angriffe ermöglichen es einem Angreifer, schädlichen Code aus der Ferne auf einem Computer auszuführen. Die Auswirkungen einer RCE-Sicherheitslücke können von der Ausführung von Malware bis hin zur vollständigen Kontrolle über das kompromittierte System reichen.
Die Schwachstelle CVE-2022-3602 in OpenSSL tritt aufgrund einer fehlerhaften Verarbeitung von Punycode bei der Überprüfung von X.509-Zertifikaten auf.
Punycode ist eine Darstellung von Unicode-Zeichenfolgen unter Verwendung der begrenzten ASCII-Zeichenteilmenge. Es wird normalerweise verwendet, um Domainnamen zu kodieren, die nicht-ASCII-Zeichen enthalten, z. B. japanische Buchstaben. Eine Punycode-kodierte Zeichenfolge
beginnt mit „xn--“ und gefolgt von englischen Buchstaben und Ziffern.
Die anfällige Funktion ossl_punycode_decode kann während der Dekodierung von Punycode-Zeichenfolgen einen Pufferüberlauf verursachen. Sie wird aufgerufen, wenn OpenSSL eine Zertifikatskette verarbeitet. Um die Schwachstelle auszunutzen, ist Folgendes erforderlich:
1) Erstellen eines CA-Zertifikats (Zertifizierungsstelle) oder eines Zwischenzertifikats, das das Feld „nameConstraints“ mit einer bösartigen Punycode-Zeichenfolge enthält. Die Punycode-Zeichenfolge muss mindestens 512 Bytes ohne „xn--“ enthalten.
2) Erstellen eines Blattzertifikats, das ein SubjectAlternateName (SAN) otherName-Feld mit einer SmtpUTF8Mailbox-Zeichenfolge enthält.
Denial-of-Service (DoS)-Sicherheitslücke
Ein Denial-of-Service (DoS)-Angriff ist ein Angriff, der darauf abzielt, einen Rechner oder ein Netzwerk lahmzulegen und für die vorgesehenen Benutzer unzugänglich zu machen. DoS-Angriffe erreichen dies, indem sie das Ziel mit Datenverkehr überfluten oder ihm Informationen senden, die einen Absturz auslösen.
Die Schwachstelle CVE-2022-3602 weist wie andere Pufferüberlauf-Sicherheitslücken ebenfalls eine Denial-of-Service-Sicherheitslücke auf. Der Pufferüberlauf tritt in der anfälligen Funktion ossl_a2ulabel auf. Wenn diese Funktion auf einen Punycode-Teil trifft, dem ein Punkt („.“) folgt, hängt sie den Punkt ebenfalls an den Ausgabepuffer an, selbst wenn dieser seine Größe überschreitet.
Auf diese Weise kann ein Angreifer den Ausgabepuffer mit einer beliebigen Anzahl von „.“-Zeichen zum Überlaufen bringen, was zur Beschädigung des Stacks führt. Diese Sicherheitslücke kann nicht für Remote-Code-Ausführung genutzt werden, sondern nur für Denial-of-Service.
Quelle: https://blog.checkpoint.com/2022/11/01/openssl-vulnerability-cve-2022-3602-remote-code-execution-and-cve-2022-3786-denial-of-service-check-point-research-update/
