[Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパーの脆弱性

Back to archive index

kunitsuji tsuji****@m-s*****
2010年 4月 6日 (火) 18:49:52 JST


 kunitsujiです。

これって、FORMで配列で値を受け取った時、ということですか。


>お世話になっております。溝口です。
>
>Kenji Suzuki <kenji****@gmail*****> さんwrote:
>
>> となると、この if文自体を削除した方がいいでしょうかね。
>> 
>>       if (isset($prepped_fields[$field_name]))
>>       {
>>           return $str;
>>       }
>
>ここを削除すると確かに前の値は残らなくなりますが、
>set_value() を2度呼び出した場合、& が
>1度目では $amp;
>2度目では &amp;amp;
>と変換されるようになります(※)。
>
>パッチ適用時には、※の問題は起こりません。
>
>よろしくお願いいたします。
>
>
>                                          __________________________
>_________________________________________/   Original Message
>Subj: Re: [Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパー
>の脆弱性
>From: Kenji Suzuki <kenji****@gmail*****>
>To  : codei****@lists*****
>Cc  : --
>Date: 2010/04/06 17:09:36
>
>> Kenji です。
>> 
>> 
>> On Tue, 06 Apr 2010 15:12:43 +0900
>> 溝口 令雄 <mizog****@gmail*****> wrote:
>> 
>> > Kenji 様
>> > 
>> > お世話になっております。溝口です。
>> > 
>> > Kenji Suzuki <kenji****@gmail*****> さんwrote:
>> > 
>> > > CodeIgniter 1.7.2 の Formヘルパー の set_value() で同じフィールド
>> > > を 
>> > > 2回目以上表示すると 2回目以降は文字参照に変換されず XSS脆弱性にな
>> > > る
>> > > 可能性があります。
>> > > 
>> > > 詳細
>> > > http://d.hatena.ne.jp/Kenji_s/20100316/1268701194
>> > 
>> > 上記ページに記載して頂いたパッチを当てたところ、たとえば
>> > 
>> > ----------
>> > <?php foreach ($rows as $idx => $row): ?>
>> > ...(中略)...
>> > <?= form_input(array(
>> >     'name' => F_SORT . '[]',
>> >     'value' => $row[DBC_SORT], // (A)
>> >     'size' => '2',
>> >     'tabindex' => $idx + 1
>> > )) . LF  ?>
>> > ...(中略)...
>> > <?php endforeach; ?>
>> > ----------
>> > 
>> > のようにform_input()関数をループ中で繰り返し呼び出している箇所で、
>> > value属性に指定している(A)の値($row[DBC_SORT]の値)が常に$rowsの
>> > 1番目の要素の値になってしまいました。
>> > パッチを元に戻すとこの現象は起こりません。
>> > 
>> > これはどのように対処すべきでしょうか?
>> 
>> なるほど。そうですか。
>> 
>> となると、この if文自体を削除した方がいいでしょうかね。
>> 
>>       if (isset($prepped_fields[$field_name]))
>>       {
>>           return $str;
>>       }
>> 
>> 
>> // Kenji
>> 
>>  
>> > よろしくお願いいたします。
>> > 
>> > 
>> >                                           ________________________
>> >                                           __
>> > _________________________________________/   Original Message
>> > Subj: [Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパー
>> > の
>> > 脆弱性
>> > From: Kenji Suzuki <kenji****@gmail*****>
>> > To  : codei****@lists*****
>> > Cc  : --
>> > Date: 2010/03/16 10:07:28
>> > 
>> > > Kenji です。
>> > > 
>> > > 
>> > > CodeIgniter 1.7.2 の Formヘルパー の set_value() で同じフィールド
>> > > を 
>> > > 2回目以上表示すると 2回目以降は文字参照に変換されず XSS脆弱性にな
>> > > る
>> > > 可能性があります。
>> > > 
>> > > 詳細
>> > > http://d.hatena.ne.jp/Kenji_s/20100316/1268701194
>> > > 
>> > > これ、なかなか修正されないのでバグでないのかも知れませんが。
>> > > このバグに当たるような実装をすることは少ないと思いますが、知らず
>> > > に
>> > > やってしまうと危険ですので、注意喚起しておきます。
>> > > 
>> > > 
>> > > 本家では、以下に書き込みがあります。バグだと思われる方は、「バグ
>> > > なの
>> > > で
>> > > 直してくれ」みたいなことを書き込んでもらえるといいかもしれません。
>> > > 
>> > >     * http://codeigniter.com/bug_tracker/bug/11284/
>> > >     * http://codeigniter.com/forums/viewthread/139112/
>> > > 
>> > > 
>> > > // Kenji
>> > > 
>> > > _______________________________________________
>> > > Codeigniter-users mailing list
>> > > Codei****@lists*****
>> > > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>> > __________________________________________________________________
>> > __
>> > 
>> > _______________________________________________
>> > Codeigniter-users mailing list
>> > Codei****@lists*****
>> > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>> 
>> _______________________________________________
>> Codeigniter-users mailing list
>> Codei****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>____________________________________________________________________
>
>_______________________________________________
>Codeigniter-users mailing list
>Codei****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index