Cross-Site-Scripting: Zahlreiche Wordpress-Plugins verwenden Funktion fehlerhaft
Eine schlecht dokumentierte Funktion der Wordpress-API ist von zahlreichen populären Plugins fehlerhaft verwendet worden. Der Fehler führt zu Cross-Site-Scripting-Lücken: Betroffen sind unter anderem das Jetpack-Plugin, die Plugins von Yoast und das All-in-one-SEO-Plugin.

In einer ganzen Reihe von beliebten Wordpress-Plugins sind Cross-Site-Scripting-Lücken gefunden worden. Der Hintergrund: Alle diese Plugins nutzen Funktionen der Wordpress-API zur Verarbeitung von Query-URLs, die in der offiziellen Dokumentation missverständlich erklärt waren.
Funktion erstellt Query-Strings ohne Escaping
Johannes Schmitt von der Firma Scrunitzer hatte zunächst im SEO-Plugin der Firma Yoast eine Cross-Site-Scripting-Lücke entdeckt und an dessen Entwickler gemeldet. Bei einer Analyse stellte sich heraus, dass die Ursache dafür eine fehlerhafte Verwendung der Funktionen add_query_arg() und remove_query_arg() war. Beide Funktionen erzeugen einen URL-String mit Parametern, allerdings wird die URL dabei nicht escaped. Wenn zur Erzeugung der Query-Strings Variablen von Nutzern verwendet werden, führt das zu einer Cross-Site-Scripting-Lücke. Die Wordpress-Dokumentation erwähnte das jedoch nicht und enthielt sogar ein Codebeispiel, welches selbst verwundbar war.
Die Entwickler von Yoast stellten fest, dass auch das von ihnen entwickelte Google-Analytics-Plugin denselben Fehler gemacht hatte. Gemeinsam mit der Firma Sucuri wurde daraufhin eine Suche nach weiteren verwundbaren Plugins gestartet. Wie sich herausstellte, ist dieser Fehler weit verbreitet: Ein Blog-Beitrag von Sucuri führt 17 betroffene Plugins auf, darunter die sehr beliebten Plugins Jetpack und All in One SEO.
Alle Wordpress-Nutzer, die die entsprechenden Plugins nutzen, sollten diese umgehend aktualisieren. Für alle von Sucuri und Yoast identifizierten Plugins stehen Updates bereit. Unklar ist allerdings, wie viele weitere Plugins die entsprechenden Funktionen in unsicherer Weise verwenden. In den nächsten Tagen sollten Wordpress-Anwender daher verstärkt prüfen, ob kritische Updates für ihre Plugins bereitstehen.
Entwickler von Wordpress-Plugins sollten ihren Code nach den Funktionen add_query_arg() und remove_query_arg() durchsuchen. Wenn die Ausgabe dieser Funktionen weiterverwendet wird, sollte diese mit der Funktion esc_url() escaped werden.
Cross-Site-Scripting-Lücken weit verbreitet
Cross-Site-Scripting-Lücken, häufig abgekürzt als XSS bezeichnet, gehören zu den häufigsten Sicherheitslücken in Webanwendungen. Darunter versteht man Codestellen, an denen ein Nutzer durch eine entsprechend präparierte Eingabe Javascript-Code ausführen kann. Eine Schutzmaßnahme gegen Cross-Site-Scripting-Lücken ist Content Security Policy. Dieser HTTP-Header kann - korrekt eingesetzt - alle Cross-Site-Scripting-Lücken verhindern. Allerdings ist es extrem aufwendig, bestehende Webapplikationen nachträglich mit Content Security Policy auszustatten. Deswegen nutzen die meisten populären Webanwendungen wie Wordpress diese Technologie nicht. Cross-Site-Scripting-Lücken werden also weiterhin häufig auftreten.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
WordPress 4.2.2 has been released. This version is augmented is being called both...