2020年12月にEC-CUBE3向けに公開されている「Dosの危険性の修正」について解説します。
対象バージョンは3.0.5〜3.0.18となっています。

この脆弱性は公式サイトでは「リスク低」となっております。

Dos攻撃とは?

ウェブサイト・システムやサービスに大量のリクエストを送り込むことで、正規ユーザーがそのサービスを利用できなくなるように意図的に引き起こされる攻撃です。
結果として、ウェブサイトは過負荷状態に陥り、遅延したり完全に停止したりすることがあります。

本脆弱性の概要

商品をカートに追加する際の、購入金額上限を超えていないかのチェック処理に問題があり、下記の部分が大量のループを発生させサーバーが高負荷やダウン状態になる可能性があります。

max_total_feeが9999999999だったため、その金額に達するまでループさせることが可能でした。

for ($i = 0; $i < $quantity; $i++) {
  $tmp_subtotal += $ProductClass->getPrice02IncTax();
  if ($tmp_subtotal > $this->app['config']['max_total_fee']) {
    $this->setError('cart.over.price_limit');
    break;
  }
  $tmp_quantity++;
}

脆弱性修正の難易度について

コードの修正は指摘部分CartService1ファイルのソースを書き換えれば良いため、難易度は高くありません。

 

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ