Bug schlummerte 8 Jahre im Kernel

Über einen Kernel-Bug bei der Initialisierung von Sockets für die Netzwerkkommunikation können lokale Angreifer Code mit Root-Rechten ausführen. Die Sicherheitslücke betrifft vermutlich fast alle Kernel der 2.4er- und 2.6er-Serie und besteht offenbar bereits seit 2001.

Ursache ist eine Null-Pointer-Dereferenzierung, die auftritt, wenn bei der Initialisierung des Sockets eine nicht implementierte Funktion aufgerufen wird. Über Zeiger sollten solche Anforderungen eigentlich auf eine entsprechende Handling-Routine umgebogen werden, doch lassen offenbar manche Protokolle diese Pointer uninitialisiert. Dazu zählen nach derzeitigem Kenntnisstand auf jeden Fall Appletalk, IPX, X.25, IRDA, Bluetooth, ISDN, AX25, SCTP via IPv6 und IUCV, doch könnten auch noch andere die Schwachstelle aufweisen.

 

Der Kernel prüft in den meisten relevanten Funktionen vor Ausführung, ob ein valider Funktionszeiger übergeben wurde. Die Routine “sock_sendpage()” jedoch unterlässt diesen Test und akzeptiert den Null-Pointer. Daher kann ein Angreifer seinen Schadcode einfach in der ersten Page übergeben und so mit Root-Rechten zur Ausführung bringen. Eine solche Attacke setzt allerdings voraus, dass der Angreifer auf dem System bereits über das Recht zum Ausführen von Code als Benutzer verfügt. Remote lässt sich der Bug also nicht ausnutzen.

 

Für die Sicherheitslücke liegen bereits funktionierende Exploits vor, aber auch ein passender Kernel-Patch in Git. Die meisten Distributionen dürften umgehend Sicherheitsaktualisierungen für die aktuell ausgelieferten Kernelversionen veröffentlichen.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben