チケット #17332

登録: 2009-06-15 18:35

最終更新: 2009-06-16 15:15

getHiddenVarsの脆弱性の修正

報告者:shuitic担当者:mumumu-org
優先度:9 - 最高マイルストーン:(未割り当て)
チケットの種類:バグ重要度:9 - 最高
コンポーネント:Ethna-Core状況:完了
解決法修正済み

チケットの詳細

脆弱性を見つけたので報告します。ブログからの引用になります。

Ethnaには、フォームの値のHiddenタグを作成してくれるgetHiddenVarsというメソッドがあります。

サブミットした値を、Hidden値として次のアクションに引き継ぐ際に使用する便利な関数ですが、特定の条件でクロスサイトスクリプティングになる脆弱性があることがわかりました。

(少なくともv1.4.2のドキュメントを見ると直っていなかった。)

特定の条件とは、

    • CSRF対策をやっていないアクション
    • GETで受け付けているアクション
    • フォームの値として配列を使用している。例)eki_id[]
    • getHiddenVarsで生成した文字列を、次の画面テンプレートで表示する

です。

eki_id[]がフォームの名称だとすると、

eki_id%5B"><script>alert(document.cookie)</script>%5D=123

という値をgetパラメータとして送ると、次の画面でScriptが実行されてしまいます。

これはgetHiddenVarsでは、フォームの名前はエスケープされないためだと思われます。

http://d.hatena.ne.jp/shuitic/20090615/1245039267

添付ファイル

添付ファイルリスト添付ファイルはありません
新規添付ファイル追加
添付ファイルの追加添付ファイルの追加にはログインが必要です

チケットの履歴 - 4 件中 3 件表示 [古い履歴も表示する]

2009-06-15 18:35 更新者: shuitic

  • 新しいチケット "getHiddenVarsの脆弱性の修正" が作成されました

2009-06-15 18:59 更新者: mumumu-org

  • コンポーネント(未割り当て) から Ethna-Core に更新されました
  • 重要度2 から 9 - 最高 に更新されました
  • 優先度3 から 9 - 最高 に更新されました
  • チケットの種類機能リクエスト から バグ に更新されました
  • 担当者(未割り当て) から mumumu-org に更新されました

コメント

御報告ありがとうございます。form_name も 入力値であることを見逃した故のバグですね。 2.3.6 ブランチ、 trunk ともに修正し、必要なアナウンスをするようにします。

2009-06-15 20:56 更新者: mumumu-org

  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2009-06-15 20:56 に更新されました

コメント

2.3.6 branch, trunk ともに修正しました。2.3系に対しては新バージョンを、2.5.x 系については patch を今夜中にリリース予定です。

2009-06-16 15:15 更新者: shuitic

コメント

すばやい対応ありがとうございます。


追記/更新 #17332 (getHiddenVarsの脆弱性の修正)

このチケットにコメントを追加するには、ログインが必要です » ログインする