Open Source im professionellen Einsatz

Dirty-Cow-Bug: Lokaler Angreifer kann Dateien überschreiben

 Ein Race-Condition-Problem im Linux Kernel hat zur Folge, dass lokale Angreifer Daten anderer Anwenders überschreiben können.
Das interessante an dieser Schwachstelle ist, dass sie schon extrem lange im Kernel vorhanden ist, ohne dass sie bisher entdeckt wurde. Genauer gesagt befindet sich der Fehler schon seit der Version 2.6.22 im Kernel, das heißt seit mehr als neuen Jahren. Linus Torvalds selbst hatte diesen Fehler schon vor elf Jahren einmal korrigiert, aber anscheinend hat er dies nicht ordentlich gemacht, so dass auch danach noch Attacken möglich waren.
Ursache der Schwachstelle ist ein Race-Condition-Fehler im Speicher-Subsystem des Kernels. Dort kann die Race-Condition in der »get_user_pages()«-Funktion bei Schreibzugriffen auftreten.
Ein Exploit wurde ebenfalls veröffentlicht und kann hier heruntergeladen werden. Folgendes kleine Beispiel zeigt wie dieser Exploit auf
betroffenen Systemen angewendet werden kann:

$ sudo -s
# echo this is not a test > foo
# chmod 0404 foo
$ ls -lah foo
-r-----r-- 1 root root 19 Oct 20 15:23 foo
$ cat foo
this is not a test
$ gcc -lpthread dirtyc0w.c -o dirtyc0w
$ ./dirtyc0w foo m00000000000000000
mmap 56123000
madvise 0
procselfmem 1800000000
$ cat foo
m00000000000000000

Der Inhalt der Datei foo wird hier durch den Exploit von einem lokalen Angreifer überschrieben. Obwohl die Datei mit Root-Rechten angelegt wurde, kann der Angreifer die Datei als normaler Anwender einfach überschreiben indem er die Exploit-Binary auf die Datei anwendet.

comments powered by Disqus

Stellenmarkt

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