脆弱性

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

EC-CUBE公式アドバイザー
ご相談窓口

  • 他社のASPやパッケージとの違いを知りたい
  • BtoCのサイトにBtoB機能を追加したい
  • 何から手をつければよいかわからない
  • オープンソースならではの注意事項を知りたい
  • 自社にマッチした制作会社を探したい
  • サイト制作だけでなく運営もサポートしてほしい

新規構築・リニューアル・取引先向けのWeb受発注システム(BtoB)や事業の拡大など、
今抱えている課題を解決する最適な業者探しを、アドバイザーがお手伝いします。