| 項目 | 内容 |
|---|---|
| CVE | CVE-2026-79410 |
| 影響を受ける製品 | Webkul Bagisto |
| 確認されたバージョン | 2.4.9 |
| 技術調査で影響が確認されたバージョン | 2.4.10 |
| 脆弱性の種類 | 商品数量に対する入力値検証不備 |
| CWE | CWE-20:Improper Input Validation |
| CVSS v3.1 | 8.1(High) |
| 攻撃に必要な権限 | 認証済み一般ユーザー |
| 主な影響 | 注文金額の不正操作、商品価格の不正な減額 |
| 修正状況 | 公開された技術情報では、少なくとも2.4.10まで未修正と報告 |
Bagistoとは
Bagistoは、Laravelをベースに開発されているオープンソースのECプラットフォームです。
商品、在庫、顧客、注文、決済など、オンラインストアに必要となるさまざまな機能を備えています。
ECシステムでは、商品価格だけでなく数量、割引、税額、送料など複数の値を基に最終的な注文金額が計算されます。
そのため、ブラウザやAPIから送信される数量などの値を信用せず、サーバー側で許可された範囲にあることを検証することが重要です。
脆弱性の詳細
Bagistoには、商品をカートへ追加する複数の処理経路があります。
通常のカート追加処理では、一部の数量パラメータについて1以上の整数であることを確認する入力検証が行われています。
一方、公開された技術調査では、ウィッシュリストからカートへ商品を移動する処理や、バンドル商品の一部の数量パラメータにおいて、同等の検証が行われない経路が確認されています。
数量処理では、0の場合は既定値へ変換する処理が存在する一方、負の整数についてはそのまま処理が継続される可能性があります。
その値が商品金額の計算へ到達すると、
商品単価 × 数量
という計算によって負の明細金額が生成される可能性があります。
負の金額がカート全体の合計に加算されることで、別の商品を含む注文全体の金額を本来より低くすることが可能になります。
問題の本質は、同じ「数量」という値について、処理経路によって入力検証の条件が異なっている点にあります。
想定される影響
本脆弱性が悪用された場合、攻撃者がECサイト上の注文金額を不正に操作する可能性があります。
想定される主な影響は以下のとおりです。
- 商品を本来より低い金額で購入される
- マイナスの明細金額によるカート合計の減額
- 複数商品を組み合わせた注文金額の不正操作
- EC事業者の直接的な金銭的損失
- 注文・売上データの整合性低下
- 会計処理や在庫管理への影響
特に、金額計算をフロントエンド側の入力値に依存しているECシステムでは、同様の問題が発生する可能性があります。
攻撃の成立条件
本脆弱性の悪用には、Bagisto上で商品をカートへ追加できる認証済みユーザーが必要です。
管理者権限は必要ありません。
攻撃の複雑さもLowと評価されているため、脆弱な処理へアクセスできる環境では注意が必要です。
対策
Bagistoを利用している場合は、ベンダーのセキュリティ情報を確認し、本脆弱性への修正を含むバージョンが提供された場合は速やかにアップデートしてください。
加えて、ECシステムの実装では以下の対策が重要です。
1. すべての数量値をサーバー側で検証する
商品数量には、原則として1以上の整数のみを許可してください。
トップレベルの quantity だけでなく、バンドル商品、オプション商品、ウィッシュリストなど、すべての関連パラメータに同じルールを適用する必要があります。
2. 共通の数量検証処理を利用する
複数のAPIや画面ごとに異なる検証処理を実装すると、特定の経路だけ検証が抜ける可能性があります。
数量の正規化や範囲チェックは共通処理として実装することが推奨されます。
3. 注文確定時に金額を再計算する
カートへ保存されている金額をそのまま信用せず、注文確定時にサーバー側で商品価格、数量、割引などを再計算してください。
4. 異常な注文を監視する
数量が0以下になっている注文や、商品構成に対して合計金額が不自然に低い注文を検出できるよう、監視やアラートを導入することも有効です。
まとめ
CVE-2026-79410は、Bagistoの商品数量に対する入力値検証が一部の処理経路で不足していることにより、注文金額を不正に減額できる可能性がある脆弱性です。
ECサイトでは、価格そのものだけでなく、数量、割引率、送料、税額など、金額計算に使用されるすべての値を攻撃者が操作する可能性があることを前提として設計する必要があります。
フロントエンドから送られた値をそのまま利用せず、注文確定までの各処理でサーバー側の検証と再計算を行うことが重要です。
参考情報
■ CVE
CVE-2026-79410
■ 脆弱性種別
CWE-20:Improper Input Validation
■ CVE.org
CVE-2026-79410
■ Technical Advisory / Research
CyberCrew Isuka Sanujによる技術情報





