[Инфо] Wordpress 3.2.1 Core Module XSS(уязвимость)

Тема в разделе "Wordpress", создана пользователем yavasilek, 24 авг 2011.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. yavasilek

    yavasilek vasilek_gorbunok

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

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

    Файл post-template.php
    Добавляем htmlentities() к указанным строчкам

    Код:
     function the_title($before = '', $after = '', $echo = true) {
     $title = get_the_title();
     if ( strlen($title) == 0 )
      return;
     $title = $before . $title . $after;
     if ( $echo )
    [B]echo htmlentities($title);[/B] 
     else
    [B]return htmlentities($title);[/B] 
    }
    Код:
     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 )
    [B]echo htmlentities($title) ;[/B]
     else
    [B]return htmlentities($title);[/B] 
    }
    Код:
     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);
      }
     }
    [B]return htmlentities(apply_filters( 'the_title', $title, $id ));[/B] 
    }
    P.S. Для эксплуатации нужны права автора.
    Взято с хабра!
     
  2. KainCq

    KainCq Постоялец

    Регистр.:
    15 июн 2011
    Сообщения:
    118
    Симпатии:
    22
    Если у Вас пользователи не могут создавать записи, то можете не беспокоиться, уязвимость только для сайтов где пользователи могут создавать записи.
     
    wantolot нравится это.
Статус темы:
Закрыта.