Ticket #1502 (closed バグ指摘: 修正済)

Opened 8 years ago

Last modified 8 years ago

SQLインジェクション

Reported by: kajiwara Owned by: somebody
Priority: Milestone: EC-CUBE2.11.3
Component: その他 Version: 2.11.0
Keywords: Cc:
修正済み: yes

Description

2.11系にて特定条件時のみ発生するSQLインジェクションが発見されました。

2.11.3にて修正します。

脆弱性発生バージョン:

・Ver2.11.0~2.11.2

脆弱性の種類:

・SQLインジェクション(ただし、発生条件が特殊)

修正方法: data/class/SC_Query.php の以下のコードを変更(削除)します。

462行目付近、502行目付近のソースコードをそれぞれ2行削除 (以下ソース頭部に「-」が付いている2行のソースを削除)

◆462行目付近

                 $strval .= 'Now(),';
             } else if(strcasecmp('CURRENT_TIMESTAMP', $val) === 0) {
                 $strval .= 'CURRENT_TIMESTAMP,';
-            } else if(strpos($val, '~') === 0) {
-                $strval .= preg_replace("/^~/", "", $val);
             } else {
                 $strval .= '?,';
                 $arrval[] = $val;

◆502行目付近

                 $arrCol[] = $key . '= Now()';
             } else if(strcasecmp('CURRENT_TIMESTAMP', $val) === 0) {
                 $arrCol[] = $key . '= CURRENT_TIMESTAMP';
-            } else if(strpos('~', $val) === 0) {
-                $arrCol[] = $key . '= ' . $val;
             } else {
                 $arrCol[] = $key . '= ?';
                 $arrVal[] = $val;

上記if分の分岐部分に関して、正式版で使用している部分がないので、単純に削除する対応で問題なし。

Attachments

JVN_44496332_02.patch Download (886 bytes) - added by kajiwara 8 years ago.
Ver2.11.2からの修正パッチを添付いたします。 ご活用ください。

Change History

comment:1 Changed 8 years ago by kajiwara

  • Status changed from new to closed
  • 修正済み set
  • Resolution set to 修正済

r21278 にて対応しました。

Changed 8 years ago by kajiwara

Ver2.11.2からの修正パッチを添付いたします。 ご活用ください。

Note: See TracTickets for help on using tickets.