脆弱性

Windowsサーバー環境における、ディレクトリトラバーサルの脆弱性

  • 情報公開日:2013年 08月 29日
  • 危険度:
  • 対象:Ver 2.12.0以降(2.12.0 ~2.12.5)
-------------------------------------------------------------------
■脆弱性の種類
-------------------------------------------------------------------
ディレクトリトラバーサルに関する脆弱性

-------------------------------------------------------------------
■不具合が発生する環境
-------------------------------------------------------------------
Windowsサーバーを利用している環境

-------------------------------------------------------------------
■不具合が存在するEC-CUBEのバージョン
-------------------------------------------------------------------
EC-CUBE 2.12.0 以降
	 2.12.0
	 2.12.1
	 2.12.2
	 2.12.3
	 2.12.3en.p1
	 2.12.3en.p2
	 2.12.4
	 2.12.4en
	 2.12.5
	 2.12.5en

-------------------------------------------------------------------
■修正方法について(以下は Ver2.12.5 の修正となっております。)
-------------------------------------------------------------------

data/class/api/SC_Api_Operation.php::doApiAction
に以下の変更を加えます。

※修正ファイルの詳細はこちらをご確認ください
http://www.ec-cube.net/info/weakness/20130829/index.php

▽SC_Api_Operation.php
関数追加
-----------------------------------------------------------------------------------------------------------------
 追加
-----------------------------------------------------------------------------------------------------------------
/**
 * APIのリクエスト基本パラメーターのチェック
 *
 * @param object $objFormParam
 * @return array $arrErr
 */
protected function checkParam($objFormParam)
{
    $arrErr = $objFormParam->checkError();
    if (!preg_match("/^[a-zA-Z0-9\-\_]+$/", $objFormParam->getValue('Operation')) && !SC_Utils::isBlank($objFormParam->getValue('Operation'))) {
        $arrErr['ECCUBE.Operation.ParamError'] = 'Operationの値が不正です。';
    }
    if (!preg_match("/^[a-zA-Z0-9\-\_]+$/", $objFormParam->getValue('Service')) && !SC_Utils::isBlank($objFormParam->getValue('Service'))) {
        $arrErr['ECCUBE.Service.ParamError'] = 'Serviceの値が不正です。';
    }
    if (!preg_match("/^[a-zA-Z0-9\-\_]+$/", $objFormParam->getValue('Style')) && !SC_Utils::isBlank($objFormParam->getValue('Style'))) {
        $arrErr['ECCUBE.Style.ParamError'] = 'Styleの値が不正です。';
    }
    if (!preg_match("/^[a-zA-Z0-9\-\_]+$/", $objFormParam->getValue('Validate')) && !SC_Utils::isBlank($objFormParam->getValue('Validate'))) {
        $arrErr['ECCUBE.Validate.ParamError'] = 'Validateの値が不正です。';
    }
    if (!preg_match("/^[a-zA-Z0-9\-\_\.]+$/", $objFormParam->getValue('Version')) && !SC_Utils::isBlank($objFormParam->getValue('Version'))) {
        $arrErr['ECCUBE.Version.ParamError'] = 'Versionの値が不正です。';
    }
    return $arrErr;
}
=================================================================================================================

下記のリビジョンで修正
http://svn.ec-cube.net/open_trac/changeset/22891
close icon
EC-CUBEペイメントプラス

決済導入なら、EC-CUBE公式決済

公式決済について詳しく知る

EC-CUBE公式 Amazon Pay

CVRアップの事例多数

Amazon Payについて詳しく知る

無料相談受付中!

アドバイザーに相談する