Der Dirty Cow Fehler ist bereits seit der Kernel-Version 2.6.22 im Kernel enthalten und damit auch in jeder bisher veröffentlichten Android-Versionen, denn die erste Android-Version kam mit dem Kernel 2.6.25. Im Gegensatz zu verschiedenen Linux-Distributoren, die den Fehler bereits kurz nach Bekanntwerden gefixt hatten, hat Google im November-Update die Lücke noch nicht gestopft. Mindestens bis zum Update im nächsten Monat wird Android hier also angreifbar bleiben.
Es handelt sich dabei um einen Fehler in der Kernel-Funktion Copy-on-Write (Cow), der es Prozessen mit normalen Rechten erlaubt, Speicherbereiche zu verändern, die eigentlich nur für Prozesse mit root-Rechten beschreibbar sein sollten. Werden diese veränderten Daten dann ausgeführt, kann man das System komplett übernehmen, eben rooten. Diese Beschreibung ist natürlich vereinfacht, wer sich für die genauen technischen Details interessiert, der wird schnell fündig und findet dann auch schnell einen fertigen Proof of Concept, der nur um einige Zeilen ergänzt werden muss, um ein Android-Gerät zu rooten.
Natürlich kann man das prima finden. Schließlich wollen nicht wenige User ihr Android-Gerät durch das Rooten möglicherweise von Beschränkungen befreien, aber so eine Sicherheitslücke lässt sich eben nicht nur vom Besitzer eines Gerätes nutzen, sondern auch von Dritten. Für Linux-Systeme soll es schon aktive Angriffe auf die Lücke geben (es haben hoffentlich alle ihre Linux-Systeme auf dem aktuellen Stand) und anhand des PoC ist es für jemanden mit den nötigen Kenntnissen keine große Sache mehr, eine entsprechende Angriffs-App für Android zu erstellen oder den notwendigen Code für den Angriff in eine bestehende App einzubauen.
Theoretisch wäre es auch möglich, entsprechende Apps in den Google Play Store zu bringen, die das Gerät ohne Wissen des Nutzers rooten und sich entsprechende Hintertüren einbauen. Zwar sind bislang keine solchen Fälle bekannt geworden, aber das ist natürlich keine Garantie dafür, dass es auch so bleibt. Umso unverständlicher ist es, dass Google diese Lücke nicht geschlossen hat, eine Lücke, für die es bereits kurz nach der Entdeckung einen Patch gab und die eben nicht harmlos ist.
Kleine Anekdote zur schmutzigen Kuh am Rande: Bereits vor 11 Jahre hatte Linus Torvalds versucht, den Bug zu fixen. Der Fix wurde aber kurz darauf wieder entfernt, weil es mit diesem andere Probleme gab und der Fehler damals offenbar für nicht so kritisch gehalten wurde. Elf Jahre – alleine damit dürfte die durchschnittliche Zeit zwischen Fehlerentdeckung und Fehlerbehebung bei Linux recht deutlich ansteigen.
via Golem