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