CVE情報

CVE information

CVE-2026-79410
: : Bagistoの数量検証不備により注文金額を不正操作できる脆弱性

報告者

株式会社CyberCrew Isuka Sanuj

概要

Webkul Bagistoにおいて、カートへ商品を追加する際の数量値に対する検証が不十分であり、認証済みユーザーが注文金額を本来の商品価格より低い値へ操作できる可能性がある脆弱性が確認されました。

本脆弱性は、商品数量を処理する一部の経路において、数量が1以上であることを適切に検証していないことに起因します。

通常、ECサイトの商品数量には正の整数のみを許可する必要があります。しかし、影響を受ける処理では負の数量が内部処理まで到達する可能性があり、その値を使用して「商品単価 × 数量」が計算されます。

その結果、負の数量によってマイナスの明細金額が生成され、カート全体の合計金額を減少させる可能性があります。

攻撃が成立した場合、実際に配送される商品を、本来支払うべき金額より低い注文金額で購入されるおそれがあります。

CVEレコードのCISA ADPによる補足評価では、本脆弱性はCWE-20:Improper Input Validationに分類されています。

基本スコア(Base Score)

8.1 (High)
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

攻撃元区分(Attack Vector)

ネットワーク(Network)
隣接ネットワーク(Adjacent)
ローカル環境(Local)
物理アクセス(Physical)

攻撃の複雑さ(Attack Complexity)

(Low)
(High)

必要な権限(Privileges Required)

不要(None)
(Low)
(High)

ユーザー関与(User Interaction)

不要(None)
必要(Required)

スコープ(Scope)

変更なし(Unchanged)
変更あり(Changed)

機密性(Confidentiality)

影響なし(None)
(Low)
(High)

完全性(Integrity)

影響なし(None)
(Low)
(High)

可用性(Availability)

影響なし(None)
(Low)
(High)
項目内容
CVECVE-2026-79410
影響を受ける製品Webkul Bagisto
確認されたバージョン2.4.9
技術調査で影響が確認されたバージョン2.4.10
脆弱性の種類商品数量に対する入力値検証不備
CWECWE-20:Improper Input Validation
CVSS v3.18.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による技術情報


Page Top