Eine Sicherheitslücke in Open SSL hat zur Folge, dass ein entfernter Angreifer Denial-of-Service-Attacken ausführen kann.
Ein Angreifer kann mit Hilfe spezieller TLS-1.2-Daten den Server zum Absturz bringen. Ursache ist ein Programmierfehler in der Funktion “ssl_get_algorithm2()” in der Quelltext-Datei “ssl/s3_lib.c”. Hier wird die zu verwendende Versionsnummer falsch erkannt, was der Angreifer für seine Attacke ausnutzen kann. Der fehlerhafte Code sieht folgendermaßen aus:
long ssl_get_algorithm2(SSL *s) { long alg2 = s->s3->tmp.new_cipher->algorithm2; if (TLS1_get_version(s) >= TLS1_2_VERSION && alg2 == (SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF)) return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256; return alg2;
Ein Angreifer kann hier dafür sorgen, dass der Check “TLS1_get_version(s) >= TLS1_2_VERSION” Check nicht die korrekte Version erkennt. Die Behebung ist einfach und ersetzt diese Abfrage durch:
long ssl_get_algorithm2(SSL *s) { long alg2 = s->s3->tmp.new_cipher->algorithm2; if (s->method->version == TLS1_2_VERSION && alg2 == (SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF)) return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256; return alg2;
Damit ist die Attacke dann nicht mehr möglich.
Betroffen sind die Versionen vor 1.0.2.

