IBResource Опубликовано 5 Января 2006 Жалоба Поделиться Опубликовано 5 Января 2006 Обращаем ваше внимание на найденную потенциальную уязвимость во всех версиях IPB 2.x.x. Информация об этой уязвимости была получена компанией IPS сегодня утром и сейчас представлено исправление. Мы рекомендуем всем обновить свои форумы сразу, не дожидаясь выхода русской версии IPB 2.1.4. Дистрибутивы IPB 2.0.4 и IPB 2.1.3 были обновлены, поэтому те, кто скачал дистрибутив после 17:50 по московскому времени, уже имеют исправленную версию. Пользуйтесь ручным исправлением уязвимости, представленным ниже в этой теме для IPB 2.1.x и IPB 2.0.x. Клиенты также могут написать в техническую поддержку через клиент-центр и запросить исправление уязвимости, предоставив FTP доступ. Спасибо! 5.01.06, 21:30 — ручное исправление для IPB 2.0.x исправлено, ранее оно было с ошибками!6.01.06, 16:54 — ручное исправление для обоих версий исправлено, разработчики нашли несколько иное решение проблемы в файлах ipsclass.php и functions.php, соответственно. Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 5 Января 2006 Жалоба Поделиться Опубликовано 5 Января 2006 Для версий IPB 2.1.x sources\ipsclass.php, код:$this->forum_read[$id] = $stamp;заменить на:$this->forum_read[ intval($id) ] = intval($stamp);и еще код: /*-------------------------------------------------------------------------*/ // Makes incoming info "safe" /*-------------------------------------------------------------------------*/заменить на: /*-------------------------------------------------------------------------*/ // Makes topics read or forum read cookie safe /*-------------------------------------------------------------------------*/ /** * Makes int based arrays safe * XSS Fix: Ticket: 243603 * Problem with cookies allowing SQL code in keys * * @param array Array * @return array Array (Cleaned) * @since 2.1.4(A) */ function clean_int_array( $array=array() ) { $return = array(); if ( is_array( $array ) and count( $array ) ) { foreach( $array as $k => $v ) { $return[ intval($k) ] = intval($v); } } return $return; } /*-------------------------------------------------------------------------*/ // Makes incoming info "safe" /*-------------------------------------------------------------------------*/ sources\action_public\forums.php, код:$this->read_array = unserialize(stripslashes($read));заменить на:$this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) ); sources\action_public\search.php, код:$this->read_array = unserialize(stripslashes($read));заменить на:$this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) ); sources\action_public\topics.php, код:$this->read_array = unserialize(stripslashes($read));заменить на:$this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) ); sources\action_public\usercp.php, найти код: $topic_array = array_slice( array_keys( $topics ), 0, 5 );после него добавить следующую строку: $topic_array = $this->ipsclass->clean_int_array( $topic_array ); Ссылка на комментарий Поделиться на других сайтах Прочее
IBResource Опубликовано 5 Января 2006 Автор Жалоба Поделиться Опубликовано 5 Января 2006 (изменено) Для версий IPB 2.0.x: Файл sources\functions.php, найти код:$ibforums->forum_read[$id] = $stamp;заменить на:$ibforums->forum_read[ intval($id) ] = intval($stamp);а также найти код: /*-------------------------------------------------------------------------*/ // Makes incoming info "safe" /*-------------------------------------------------------------------------*/заменить на: /*-------------------------------------------------------------------------*/ // Makes topics read or forum read cookie safe /*-------------------------------------------------------------------------*/ /** * Makes int based arrays safe * XSS Fix: Ticket: 243603 * Problem with cookies allowing SQL code in keys * * @param array Array * @return array Array (Cleaned) * @since 2.1.4(A) */ function clean_int_array( $array=array() ) { $return = array(); if( !is_array($array) OR count($array) < 1 ) { return $return; } foreach( $array as $k => $v ) { $return[ intval($k) ] = intval($v); } return $return; } /*-------------------------------------------------------------------------*/ // Makes incoming info "safe" /*-------------------------------------------------------------------------*/ Файл sources\forums.php, найти код:$this->read_array = unserialize(stripslashes($read));заменить на:$this->read_array = $std->clean_int_array( unserialize(stripslashes($read)) ); Файл sources\search.php, найти код:$this->read_array = unserialize(stripslashes($read));заменить на:$this->read_array = $std->clean_int_array( unserialize(stripslashes($read)) ); Файл sources\topics.php, найти код:$this->read_array = unserialize(stripslashes($read));заменить на:$this->read_array = $std->clean_int_array( unserialize(stripslashes($read)) ); Файл sources\usercp.php, найти код:$topic_array = array_slice( array_keys( $topics ), 0, 5 );добавить ниже:$topic_array = $std->clean_int_array( $topic_array ); Изменено 6 Января 2006 пользователем Vitaly Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 6 Января 2006 Жалоба Поделиться Опубликовано 6 Января 2006 Разработчики нашли несколько иное исправление в файлах ipsclass.php (2.1.x) и functions.php (2.0.x), просим обратить внимание на исправленные сообщения выше. Спасибо! Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения