HTML-Injection Schwachstelle bei WordPress Plugin WPForms

Die Sicherheitsforscher von aramido deckten im WordPress Plugin WPForms vom gleichnamigen Unternehmen eine HTML-Injection Sicherheitslücke auf. Das Plugin ermöglicht Nutzern des sehr weit verbreiteten Content Management Systems WordPress das einfache Erstellen von Formularen, wie beispielsweise einem Kontaktformular. Sicherheitslücken wie diese treten bei Webseiten mit Eingabefeldern immer wieder auf, obwohl sie seit langem als eines der häufigsten Sicherheitsrisiken für Webanwendungen gelten. Nach den aramido Richtlinien zum verantwortlichen Offenlegen von Sicherheitslücken meldete aramido die Schwachstelle an den Hersteller zur Behebung, was laut WPForms, LLC. in der Zwischenzeit erfolgt ist. Der von aramido formulierte Sicherheitshinweis kann zudem öffentlich eingesehen werden.

Ein mit WPForms erstelltes WordPress Kontaktformular aus der Vorlage Einfaches Kontaktformular besteht aus den Feldern Name, E-Mail und Kommentar oder Nachricht. Wird das Kontaktformular ausgefüllt und abgeschickt, wird an einen vordefinierten Empfänger eine E-Mail gesendet, welche die Inhalte der drei Felder enthält. Dabei filtert WPForms mit der WordPress Funktion sanitize_text_field HTML-Tags heraus. Diese Filterung entfernt erkannte HTML-Tags aus der Nachricht, jedoch wird diese Filterung nur einmalig durchgeführt, was eine HTML-Injection ermöglichte. Durch das verschachtelte Injizieren von weiteren HTML-Tags konnten die Sicherheitsforscher von aramido die Filterung umgehen. Die von WPForms an den vordefinierten Empfänger gesendete E-Mail hätte man so mit gefälschten Inhalten wie beispielsweise einem Klicken-Sie-hier-zum-Antworten-Knopf ausstatten können und den Empfänger so auf eine vorbereitete Phishing Seite locken.

Zur Behebung einer Schwachstelle dieses Typs ist es nötig, auf folgenden Ebenen nachzubessern:

  1. Validierung aller Benutzereingaben mit einer entsprechenden Fehlerbehandlung.
  2. Escaping der Inhalte gemäß des Zielsystems, in diesem Fall HTML.

Die gefundene Schwachstelle wurde bei der Version 1.5.9.5 von WPForms festgestellt. Das Update auf die korrigierte Version 1.6.0.1 steht in WordPress zur Installation bereit. aramido hat die neue Version geprüft und konnte die Sicherheitslücke in diese Form nicht mehr feststellen. Darüber hinaus empfiehlt aramido Härtungsmaßnahmen durchzuführen, also das eigene IT-System gegen den hier beschriebenen Angriff weiter abzusichern und beispielsweise E-Mails aus mit Inhalten von öffentlich zugänglichen Feldern als Nur-Text E-Mails anzuzeigen.