Open Source im professionellen Einsatz

Strongswan: Denial-of-Service-Attacke

Eine Sicherheitslücke in der IPSec-Implementierung Strongswan hat zur Folge, dass ein entfernter Angreifer Denial-of-Service-Attacken durchführen kann. Damit ist er in der Lage den IKE-Dienst zum Absturz zu bringen.

Die Schwachstelle kann durch eine spezielle ID-Payload ausgelöst werden. Konkret muss der Angreifer eine speziell konstruierte "ID_DER_ASN1_DN"-ID-Payload an den Dienst senden und kann damit einen Nullzeiger-Dereferenzfehler auslösen. Der Programmierfehler befindet sich in der Funktion "asn1_unwra()" in der Quelltextdatei "asn1/asn1.c". Für die Schwachstelle wurde ein Patch veröffentlicht, das Fehler korrigiert:

diff --git a/src/libstrongswan/asn1/asn1.c b/src/libstrongswan/asn1/asn1.c
index d860ad9..9a5f5c5 100644
--- a/src/libstrongswan/asn1/asn1.c
+++ b/src/libstrongswan/asn1/asn1.c
@@ -296,7 +296,7 @@ int asn1_unwrap(chunk_t *blob, chunk_t *inner)
  else
  { /* composite length, determine number of length octets */
   len &= 0x7f;
-  if (len == 0 || len > sizeof(res.len))
+  if (len == 0 || len > blob->len || len > sizeof(res.len))
   {
    return ASN1_INVALID;
   }

Die modifizierte If-Abfrage stellt sicher, dass ungültige Daten erkannt werden und die Sicherheitslücke sich nicht mehr ausnutzen lässt.

Betroffen sind die Versionen 4.3.3 bis 5.1.2.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.