WordPress 3.2.1 Core Module XSS

Информация по данной уязвимости уже пролетела по просторам Сети, но может кто еще не в курсе (или для тех, кто не следит за безопасностью своего блога) — товарищем Darshit Ashara была найдена XSS в WordPress (post-template.php), ничего сверхинтересного, но безопасность на первом месте.

Пока официального патча нет, новой версии нет, под вот временное решение.

Файл post-template.php

Добавляем htmlentities() к указанным строчкам
Vulnerable Code Part 1

function the_title($before = '', $after = '', $echo = true) {
	$title = get_the_title();

	if ( strlen($title) == 0 )
		return;

	$title = $before . $title . $after;

	if ( $echo )
		echo htmlentities($title); /* Line No 52 Patch*/
	else
		return htmlentities($title); /* Line No 54 Patch*/
}

Vulnerable Code Part 2

function the_title_attribute( $args = '' ) {
	$title = get_the_title();

	if ( strlen($title) == 0 )
		return;

	$defaults = array('before' => '', 'after' =>  '', 'echo' => true);
	$r = wp_parse_args($args, $defaults);
	extract( $r, EXTR_SKIP );

	$title = $before . $title . $after;
	$title = esc_attr(strip_tags($title));

	if ( $echo )
		echo htmlentities($title) ;/* Line No 87 Patch here By adding htmlentities*/
	else
		return htmlentities($title); /* Line No 89 Patch*/
}

Vulnerable Code Part 3

function get_the_title( $id = 0 ) {
	$post = &get_post($id);

	$title = isset($post->post_title) ? $post->post_title : '';
	$id = isset($post->ID) ? $post->ID : (int) $id;

	if ( !is_admin() ) {
		if ( !empty($post->post_password) ) {
			$protected_title_format = apply_filters('protected_title_format', __('Protected: %s'));
			$title = sprintf($protected_title_format, $title);
		} else if ( isset($post->post_status) && 'private' == $post->post_status ) {
			$private_title_format = apply_filters('private_title_format', __('Private: %s'));
			$title = sprintf($private_title_format, $title);
		}
	}
	return htmlentities(apply_filters( 'the_title', $title, $id )); /* Line No 119 Patch*/
}

Итого: 5 строк затронуто

via habrahabr

Запись опубликована в рубрике Баги и фиксы с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


6 − три =

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>