getHiddenVarsの脆弱性の修正
脆弱性を見つけたので報告します。ブログからの引用になります。
Ethnaには、フォームの値のHiddenタグを作成してくれるgetHiddenVarsというメソッドがあります。
サブミットした値を、Hidden値として次のアクションに引き継ぐ際に使用する便利な関数ですが、特定の条件でクロスサイトスクリプティングになる脆弱性があることがわかりました。
(少なくともv1.4.2のドキュメントを見ると直っていなかった。)
特定の条件とは、
です。
eki_id[]がフォームの名称だとすると、
という値をgetパラメータとして送ると、次の画面でScriptが実行されてしまいます。
これはgetHiddenVarsでは、フォームの名前はエスケープされないためだと思われます。
http://d.hatena.ne.jp/shuitic/20090615/1245039267
御報告ありがとうございます。form_name も 入力値であることを見逃した故のバグですね。 2.3.6 ブランチ、 trunk ともに修正し、必要なアナウンスをするようにします。
2.3.6 branch, trunk ともに修正しました。2.3系に対しては新バージョンを、2.5.x 系については patch を今夜中にリリース予定です。
すばやい対応ありがとうございます。
脆弱性を見つけたので報告します。ブログからの引用になります。
Ethnaには、フォームの値のHiddenタグを作成してくれるgetHiddenVarsというメソッドがあります。
サブミットした値を、Hidden値として次のアクションに引き継ぐ際に使用する便利な関数ですが、特定の条件でクロスサイトスクリプティングになる脆弱性があることがわかりました。
(少なくともv1.4.2のドキュメントを見ると直っていなかった。)
特定の条件とは、
です。
eki_id[]がフォームの名称だとすると、
という値をgetパラメータとして送ると、次の画面でScriptが実行されてしまいます。
これはgetHiddenVarsでは、フォームの名前はエスケープされないためだと思われます。
http://d.hatena.ne.jp/shuitic/20090615/1245039267