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

Back to archive index

溝口 令雄 mizog****@gmail*****
2010年 4月 6日 (火) 18:03:14 JST


お世話になっております。溝口です。

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 メーリングリストの案内
Back to archive index