Aus Linux-Magazin 07/2018

Drupalgeddon 2: Drupal unter Beschuss

© Ilya Andriyanov, 123RF

Wiederholt sich die Geschichte? Erneut ist eine sehr gefährliche Schwachstelle in dem weit verbreiteten Content-Management-System Drupal aufgedeckt worden: Drupalgeddon, Version 2.

Ende März meldeten Drupal-Entwickler eine als kritisch eingestufte Sicherheitslücke (CVE-2018-7600), die es entfernten Angreifern erlaubt, komplette Drupal-Webseiten zu übernehmen. Die Entwickler stufen diese Schwachstelle auf einer Gefahrenskala auf 21 von 25 ein.

Drupalgeddon 2 ist nach einer 2014 entdeckten SQL-Injection-Schwachstelle benannt. Diese Drupalgeddon (Version 1) genannte Lücke wurde damals als Stufe 25 klassifiziert. Angreifer konnten ebenfalls ganze Seiten übernehmen.

Ursache der neuen Sicherheitslücke [1] sind Fehler bei der Kontrolle von Benutzereingaben im Zusammenspiel mit Form-API-Anfragen an das System. Dadurch ist ein Angreifer in der Lage, Schadcode in die Drupal-Umgebung einzuschleusen, der diese dann ausführt.

Das Form-API (FAPI) kommt bei allen Drupal-Formularen zum Einsatz, sodass auch nicht angemeldete Angreifer die Schwachstelle ausnutzen dürfen. Beispielsweise kann der Angreifer die Attacke über das E-Mail-Adress-Feld des Registrierungsformulars für neue Benutzer starten. Praktisch alle mit Drupal 7 und 8 gebauten Webseiten sind anfällig für solche Angriffe. Insgesamt sind so geschätzt eine Million Drupal-Installationen gefährdet.

Die Drupal-Entwickler selbst gaben zunächst keine genauen Informationen zur Ursache der Schwachstelle bekannt. Allerdings hat das Sicherheitsunternehmen Checkpoint kurze Zeit später eine erste Analyse des Problems veröffentlicht [2]. Drupal verwendet das FAPI seit Version 6. In Version 7 hielten dann so genannten Renderable Arrays Einzug in den Drupal-Code. Diese Arrays repräsentieren die meisten Elemente des Benutzer-Interface von Drupal.

Die Attacke basiert darauf, ein solches Array in ein Drupal-Formular einzufügen, ohne dass sich der Programmcode beschwert. Hierbei ist es wichtig, dass das entsprechende Formular-Eingabefeld vom Code nicht auf solche fehlerhaften Benutzereingaben kontrolliert wird. Das trifft beispielsweise auf das E-Mail-Address-Feld des Registrierungsformulars zu. Kurze Zeit nach Veröffentlichung der Checkpoint-Analyse erschien ein erster Proof-of-Concept-Exploit auf Github [3]. Er basiert auf dem in der Checkpoint-Analyse diskutierten E-Mail-Feld.

Inspiriert durch den einfachen Exploit-Code nahmen die Angriffe gegen ungepatchte Drupal-Seiten Mitte April und im Mai stark zu. Solche Attacken gegen Drupal hinterlassen Spuren – unter Drupal 8 sehen sie wie folgt aus:

user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax (HTTP 200)

Angriffe gegen Drupal 7 hinterlassen Spuren folgender Art in der Logdatei:

?q=user/password&name[%23post_render][]=" + phpfunction + "&name[%23type]=markup&name[%23markup]=" + encoded payload = "form_id=user_pass&_triggering_element_name=name (HTTP 200)

Betreiber von Drupal-Webseiten sollten nach solchen Einträgen suchen.

Ende April haben Drupal-Entwickler eine weitere Schwachstelle im Zusammenhang mit Drupalgeddon 2 (CVE-2018-7602) entdeckt [4]. Über sie können entfernte Angreifer ebenfalls Befehle auf betroffenen Systemen ausführen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben