Open Source im professionellen Einsatz

Linux Kernel: Probleme mit IPv6-Paketen

Eine Sicherheitslücke im Linux Kernel hat zur Folge, dass ein entfernter Angreifer an sensitive Informationen gelangen kann oder Denial-of-Serice-Attacken gegen das System durchführen kann. Ursache hierfür ist ein Problem im IPv6-Subsystem des Kernels. Der Programmierfehler tritt hier in der »ip6gre_err()«-Funktion in der »net/ipv6/ip6_gre.c«-Datei auf. Ein Angreifer kann die Schwachstelle ausnutzen, indem er an sein Opfer spezielle IPv6-Netzwerkdaten sendet. Diese können dann einen Overflow in der »ip6gre_err()«-Funktion auslösen.

Das Problem besteht darin, dass falls die GRE-Flags »GRE_KEY« enthalten es zu einem Überlauf in folgendem Ausdurck der Funktion kommen kann:

_be16 *p = (__be16 *)(skb->data + offset);*(((__be32 *)p) + (grehlen / 4) - 1)

Hier werden die Skb-Struktur, der Offset und grehlen-Wert letztlich vom Anwender durch Aufruf der »ip6gre_err()«-Funktion kontrolliert. Bei bestimmten IPv6-Daten kann das dann dazu führen, dass ein Angreifer auf circa 40 Bytes verschobene Speicherzeiger zugreifen kann. Auf die entsprechenden Speicherbereiche sollte eigentlich kein Zugriff möglich sein. Das kann der Angreifer für Attacken ausnutzen.

comments powered by Disqus

Ausgabe 07/2017

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

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