Tipps, WordPress

WordPress Sicherheitslücke nach Update auf 2.0.6

Nach dem vor kurzem das Update auf 2.0.6 veröffentlicht wurde, gibt es erneut Probleme, wobei es diesmal an einem PHP-Problem liegt. Weitere Hinweise und mögliche Berichtigungen mit register_globals sind unter anderem bei Jowra, Michael und Robert zu finden.

Nur als kurzer Hinweis, im englischen Original ist das Feedburner bzw. Feed-Problem auch in der Version 2.0.6 behoben. Kurz nach der ersten Veröffentlichung wurde es nochmals geändert und neu hoch geladen, die Version wurde nicht hoch gezählt. Im deutschen Update 2.0.5 –> 2.0.6 ist dieser Fehler noch drin, so dass man dort folgende Veränderung vornehmen muss.

Achtung: Keine Garantie auf Funktion! Sicherung anfertigen.

Bearbeite die Datei functions.php im Verzeichnis wp-includes und suche folgenden Code (Zeile 2.231):


if ( substr(php_sapi_name(), 0, 3) == 'cgi' )
@header("HTTP/1.1 $header $text");
else
@header("Status: $header $text");

ändern in (die drei Zeilen löschen):


@header("HTTP/1.1 $header $text");

Um nun das aktuelle Problem PHP zu beseitigen sollte folgender Workaround helfen.

In Datei wp-settings.php Zeile 16:


if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) )
	unset($GLOBALS[$k]);

ändern in:


if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) ) {
	$GLOBALS[$k] = NULL;
	unset($GLOBALS[$k]);
}
Standard
Tipps, WordPress

Sicherheitslücke in WordPress < 2.0.6

Mal wieder wurde eine Sicherheitslücke im System von WordPress entdeckt, der SecurityForus berichtet. Das Problem wird als Hoch (7.0) eingestuft und sollte behoben werden. Dazu gibt es einen Patch, der folgender maßen aussieht oder downloade die aktuelle Datei auf der Patch-Seite und überschreibe die aktuelle Datei.

** In der Version 2.0.6 beta 1 ist der Fehler nicht behoben!

Workflow:

Die Datei templates.php im Ordner wp-admin bearbeiten. Suche nach (ab Zeile 111):


<?php
echo '<ol>';
foreach ($recents as $recent) :
	echo "<li><a href='templates.php?file=" . wp_specialchars($recent, true) . "'>" . get_file_description(basename($recent)) . "</a></li>";
endforeach;
?>

und ersetze mit:


<?php
echo '<ol>';
foreach ($recents as $recent) :
	echo "<li><a href='templates.php?file=" . attribute_escape($recent) . "'>" . wp_specialchars(get_file_description(basename($recent))) . "</a></li>";
endforeach;
?>
Standard