【JVN#87770873】 2017年4月6日に公表されたCSRF脆弱性への対応方法

2017年4月6日、特定の条件下でユーザーの意図しない注文が実行されるクロスサイトスクリプティングの脆弱性 が公表されました。


 

対象バージョン

 

  • CS-Cartスタンダード版 v4.3系
  • CS-Cartマーケットプレイス版 v4.3系

※ 2017年3月31日16時以降にCS-Cart.jpからダウンロードしたCS-Cartは対策済みのため対応不要です。
※ CS-Cartのバージョン確認方法は こちら


 

脆弱性の内容と攻撃が成功するための条件

 

以下の条件を「すべて」充たした場合にユーザーの意図しない注文を実行される可能性があります。

  • CS-Cartにログインした状態で、同じWebブラウザで攻撃用スクリプトが実装されたWebサイトにアクセスする
  • 攻撃者が攻撃対象のCS-Cartで使用している支払方法のIDを事前に入手している
  • 攻撃に使用する支払方法が決済代行サービスを使用していない、またはユーザーのクレジットカード番号などを事前に入手している

 

危険度は低いが念のため対策を

 

前述のとおり、本脆弱性に対する攻撃を成功させるためには複数の条件を充たす必要があり、実際の被害を受ける可能性は極めて低いものと認識しています。

ただし、念のため以下の手順で対策を実施することをお勧めいたします。

 

関数「fn_csrf_validate_request」の編集

 

サーバー上の
 app/functions/fn.common.php
に記述されている関数
 fn_csrf_validate_request
において
 if ($params['area'] == 'A' || ($params['area'] == 'C' && $params['controller'] == 'profiles')) {

 if ($params['area'] == 'A' || ($params['area'] == 'C' && ($params['controller'] == 'profiles' || $params['controller'] == 'checkout'))) {
に書き換えてください。


 

謝辞

 

本脆弱性をご報告いただいた三井物産セキュアディレクション 廣田一貴様に対し、心より御礼申し上げます。ありがとうございました。


 

連絡先

 

本脆弱性に関するお問い合わせは、以下のURLよりお寄せください。
https://cscart.liveagent.jp/submit_ticket