Где публикуются списки уязвимостей IPB?

<!--quoteo(post=69212:date=7.10.2007, 09:39:name=Security)--><div class='quotetop'>Цитата(Security @ 7.10.2007, 09:39) [snapback]69212[/snapback]</div><div class='quotemain'><!--quotec-->Да прямо тут публикуйте =)<!--QuoteEnd--></div><!--QuoteEEnd-->
Можно и здесь :)
Вот, например последние заплатки для IPB 2.3.х:

<b>XSS уязвимость в новом профиле пользователя</b>

Если форум использует кодировку отличную от iso-8859-1 или utf-8 существует возможность отправить вредоносный JavaScript код в качестве значения поля для пользовательского профиля. Опасность данной уязвимости не значительна, если Ваши форумы используют httpOnly cookies.

<b>Исправление</b>

В файле ips_kernel/class_ajax.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $parse_incoming )<!--c2--></div><!--ec2-->

Заменить на:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $parse_incoming OR ( strtolower($this->ipsclass->vars['gb_char_set']) != 'iso-8859-1' &&
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' ) )<!--c2--></div><!--ec2-->


<b>XSS уязвимость в загрузке файлов изображений</b>

Злоумышленник может загрузить файл не являющийся изображением, если даст файлу название в определенном формате. Опасность данной уязвимости так же не велика за счет того, что IP.Board автоматически сбрасывает расширение таких файлов в txt и работает с ними подобающе. Однако из-за данной уязвимости в Вашей директории загрузок могут появляться .txt файлы с вредоносным кодом, а так же может быть результатом не отображения аватар и фотографий. Опасность данной уязвимости не значительна, если Ваши форумы используют httpOnly cookies, благодаря которым злоумышленник не сможет прочитать содержимое cookies жертвы.

<b>Исправление</b>

В файле ips_kernel/class_upload.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( in_array( $this->file_extension, $this->image_ext ) )<!--c2--></div><!--ec2-->

Заменить на:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( in_array( $this->real_file_extension, $this->image_ext ) )<!--c2--></div><!--ec2-->

<b>Обход ограничений при использовании модуля подписок</b>

При использовании модуля платных подписок (subscriptions manager) злоумышленник может при помощи специально созданной формы подделать ID пользователя для перевода его в специальную группу подписчиков. Данная уязвимость может быть использована как для перевода любого пользователя в группу подписчиков, так и для смены группы администраторам и модераторам. Однако при помощи данной уязвимости не возможно перевести пользователя в группу администраторов.

<b>Исправление</b>

В файле sources/classes/paymentgateways/class_gw_2checkout.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "quantity"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 1 );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list( $purchase_package_id, $member_id, $cur_sub_id, ) = explode( 'x', trim($this->ipsclass->input['merchant_order_id']) );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Does the verification key match?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->error = 'verification_key_mismatch';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array( 'verified' => FALSE );<!--c2--></div><!--ec2-->

В файле sources/classes/paymentgateways/class_gw_authorizenet.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "x_invoice_num"&nbsp;&nbsp;&nbsp;&nbsp;, $fp_time.'-'.$fp_seq.'-'.$items['currency_code'] );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" &nbsp;&nbsp;&nbsp;&nbsp; , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "x_invoice_num"&nbsp;&nbsp;&nbsp;&nbsp;, $fp_time.'-'.$fp_seq.'-'.$items['currency_code'] );<!--c2--></div><!--ec2-->

Добавить после:<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" &nbsp;&nbsp;&nbsp;&nbsp; , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array( 'verified' => FALSE );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Does the verification key match?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->error = 'verification_key_mismatch';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array( 'verified' => FALSE );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2-->

В файле sources/classes/paymentgateways/class_gw_nochex.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "returnurl"&nbsp;&nbsp;&nbsp;&nbsp;, GW_URL_PAYDONE&nbsp;&nbsp; );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "returnurl"&nbsp;&nbsp;&nbsp;&nbsp;, GW_URL_PAYDONE&nbsp;&nbsp; );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list( $purchase_package_id, $member_id, $cur_sub_id, ) = explode( 'x', trim($_POST['order_id']) );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Does the verification key match?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->error = 'verification_key_mismatch';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array( 'verified' => FALSE );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2-->

В файле sources/classes/paymentgateways/class_gw_paypal.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "cancel_return", GW_URL_PAYCANCEL );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list( $cur_sub_id, ) = explode( 'x', trim($_POST['invoice']) );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Does the verification key match?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $_POST['verification'] != md5( intval($_POST['custom']) . $_POST['item_number'] . $this->ipsclass->vars['sql_pass'] ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->error = 'verification_key_mismatch';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array( 'verified' => FALSE );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2-->

В файле sources/classes/paymentgateways/class_gw_safshop.php найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "type"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , "safshop" );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->core_add_hidden_field( "verification" , md5( $items['member_unique_id'] . $items['package_id'] . $this->ipsclass->vars['sql_pass'] ) );<!--c2--></div><!--ec2-->

Найти:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list( $purchase_package_id, $member_id, $cur_sub_id, ) = explode( 'x', trim($_POST['ordernumber']) );<!--c2--></div><!--ec2-->

Добавить после:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Does the verification key match?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( $_POST['verification'] != md5( intval($member_id) . $purchase_package_id . $this->ipsclass->vars['sql_pass'] ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->error = 'verification_key_mismatch';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array( 'verified' => FALSE );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2-->

<a href="http://wiki.iblink.ru/security/2.3.x/lesscritical/12.09.2007" target="_blank">Источник</a>
 
Лично мое мнение ИМХО: - Описанные выше две уязвимости, никакой опасности для сайта не несут. Ибо просто заткнуть дырку что-бы txt файлы мне не сували? Ну а что вредоносного может быть в TXT файле?
Да пусть там хоть план запуска ядерной ракеты, это ТЕКСТОВЫЙ файл и выполняться как скрипт без моего ведома он не будет.
Я бы еси честно и не стал бы над этим париться, но конечно просто неприятно было-бы гамно вычищать на сервере, если этих файлов оказалось слижком много.

Но все равно спасибо за ИНФУ!!! Пишите еще кто чего найдет... :thumbsup:
 
Сверху