WP-Bugs
3. März 2006, 9:54 Uhr (perm. Link, TrackBack)Auf Heise-Security wird auf zwei “Sicherheitslücken” von WordPress (bis 2.0.1) aufmerksam gemacht und eine vorläufige Patchanleitung gegeben.
Leider werden bei den vorgeschlagenen Änderungen Umlaute in den Kommentaren, bei dem meist verwendeten Zeichensatz UTF-8, falsch wieder gegeben.
Ein offizieller Patch ist bislang nicht verfügbar, doch in dem Advisory wird zur Behebung der XSS-Lücke empfohlen, die vier Aufrufe der Funktion trim() in der Datei wp-comments-post.php von WordPress 2.0 durch htmlentities(trim()) zu ersetzen, um die erforderliche Filterung nachzurüsten.
Ich habe es so gelöst (Zeile 24 in wp-comments-post.php)
$comment_content = utf8_encode (htmlentities (utf8_decode (trim ($_POST['comment']))));
Ich hoffe es klappt bei allen, ihr könnt ja Kommentare schreiben, um es zu testen. ;)
Ergänzung:
Da bei obiger Lösung natürlich auch jegliche gutartigen Tags heraus gefiltert werden (z.B. <a>), habe ich noch eine kleine Abfrage in das System eingebaut, die die HTML-Tags nur dann heraus filtert, wenn das <script>-Tag vorhanden ist.
Ab Zeile 24 sieht es dann so aus:
$comment_content = trim($_POST['comment']);
//Von mir eingefügt
if (preg_match (“/< (.*)script/", $_POST['comment']))
$comment_content = utf8_encode (htmlentities (utf8_decode (trim ($_POST['comment']))));
(via Perun)