EC サイトを作る製品 Adobe Commerce / Magento Open Source に、ログインせずにサーバー上でプログラムを実行できる脆弱性 CVE-2026-75650(CVSS 10.0)があり、2026年9月4日から悪用されている。発見した Sansec はこの攻撃を「StyleSmuggler」と名付けた[1][2][4]。
PART 1解説
3行でわかる要点
- 原因:メール文面などのひな形(テンプレート)を処理する仕組みに PHP のコードを紛れ込ませられる。「支払い失敗のお知らせ」メールの生成を悪用して、コードを実行させる[2][4]。
- 仕込まれたもの:外部のサーバーにつながって指示を待つ Rust 製の Linux バックドアと、ウェブシェルを書き込む PHP のドロッパー[4]。
- パッチだけでは足りない:Adobe は修正パッチ(VULN-39341)の適用に加えて、暗号鍵の変更(ローテーション)も求めている[1][4]。
前提:EC サイトとテンプレート
Adobe Commerce と Magento Open Source は、商品の陳列から注文・決済・メール通知まで、EC サイトに必要な機能をそろえた製品です。注文確認や支払い失敗のお知らせなどのメールは、あらかじめ用意したひな形(テンプレート)に、注文番号や氏名などの値を差し込んで作られます。
差し込む値は「ただの文字」として扱うのが原則です。IT パスポートで学ぶ SQL インジェクションやクロスサイトスクリプティングと同じく、「入力をプログラムとして解釈させない」ことが守りの基本になります。
まず押さえる用語
| 用語 | ひとことで | もっと詳しく |
|---|---|---|
| CVE / CVSS | 脆弱性の世界共通の番号と、深刻度を 0.0〜10.0 で表す指標。10.0 は最大値。 | IPA「共通脆弱性評価システムCVSS概説」 |
| テンプレートインジェクション | ひな形に値を埋め込む処理で、入力した値が「プログラムの一部」として解釈されてしまう欠陥。 | CWE-1336(MITRE) |
| バックドア | 侵入した攻撃者が、あとから再び入れるように仕掛けておく裏口のプログラム。 | — |
| ドロッパー | 別の不正なプログラム(ここではウェブシェル)を書き込むためのプログラム。 | — |
| 暗号鍵のローテーション | 使っている暗号鍵を新しいものに替えること。古い鍵が盗まれていても使えなくなる。 | — |
本来の仕組みと、どこが破られたか
EC サイトは「支払いに失敗しました」のようなお知らせメールを、ひな形に注文情報などの値を当てはめて作ります。値は「ただの文字」として扱うのが原則です。
StyleSmuggler では、テンプレートの処理に PHP のコードを紛れ込ませることで、メールを作る過程でコードが実行されました[4]。図1の赤い破線のように、「値として埋め込む」はずの箇所でコードが動いたわけです。Disrex は、この仕組みを「Magento 自身のテンプレート処理を、認証なしのリモートコード実行の連鎖に変えた」と表現しています[4]。
攻撃の流れ
sequenceDiagram
autonumber
participant A as 攻撃者
participant M as Magentoサーバー
participant C as 攻撃者のサーバー
A->>M: 細工したリクエスト(認証不要)
M->>M: 支払い失敗メールのテンプレートを処理
M->>M: 紛れ込んだPHPコードを実行
A->>M: PHPドロッパーでウェブシェルを設置
M->>C: Rust製バックドアが接続し指示を待つ
- 1〜3:ログインせずに、メール文面を作る処理を通してコードが動く[2][4]。
- 4〜5:ウェブシェルと、外部のサーバーから指示を受け取るバックドアの2系統が仕込まれた[4]。
- CISA は9月8日に KEV に追加し、米連邦機関に9月11日までの対処を求めた[3][4]。
- Disrex によると、最初の悪用が報告された50分後には、同社が管理する別の Magento サーバーが侵害されていた[4]。
なぜ「パッチ+鍵の変更」なのか(考察)
- パッチは今後の侵入を防ぐだけで、すでに盗まれたものは取り戻せない。暗号鍵の変更まで求められているのは、侵入された場合に鍵が持ち出されている可能性があるから、と読める。
- テンプレートの機能は「データ」と「プログラム」の境目があいまいになりやすい。利用者の入力がテンプレートの一部として解釈される経路があると、今回のような穴になる。
- 公表から悪用までが非常に短い。EC サイトはカード情報や個人情報を扱うため、狙われやすい。
いま確認すること
- 【Adobe Commerce / Magento を使っている】VULN-39341 のパッチを適用し、暗号鍵を変更する[1][4]。
- 【Adobe Commerce / Magento を使っている】見慣れない PHP ファイル、外部の見知らぬサーバーへの接続など、侵入の痕跡がないか確かめる[4]。
- 【全員】自分のアプリで、利用者の入力を「値」ではなく「テンプレート」としてテンプレートエンジンに渡している箇所がないか確かめる。
- 【全員】暗号鍵や API キーを、侵害時にすぐ替えられる手順になっているか確かめる。
出典・参考リンク
一次情報
- Adobe Security Bulletin APSB26-146
- NVD — CVE-2026-75650
- CISA Known Exploited Vulnerabilities Catalog
報道・解説
PART 2問題(情報処理安全確保支援士 試験形式)
問1 午前II形式(4択)
Adobe Commerce / Magento の CVE-2026-75650(StyleSmuggler)の原因の分類として、最も適切なものはどれか。
- ア SQL インジェクション
- イ テンプレートエンジンにおける特殊要素の無害化の不備(テンプレートインジェクション)
- ウ クロスサイトリクエストフォージェリ(CSRF)
- エ ディレクトリトラバーサル
解答・解説を表示
解答:イ
CVE レコードでの分類は CWE-1336。テンプレートの処理に PHP のコードを紛れ込ませ、メール文面を作る過程で実行させた。アはデータベースへの問い合わせ文を操作する攻撃、ウは利用者のブラウザに意図しない要求を送らせる攻撃、エはファイルのパスを操作して想定外のファイルを読む攻撃で、いずれも今回の仕組みとは異なる。
問2 午後形式(記述)
A社は EC サイトを Adobe Commerce で運営している。CVE-2026-75650 の公表を受けて、A社は修正パッチ VULN-39341 を適用し、対応を終えようとした。セキュリティ担当の B さんは、①暗号鍵の変更も必要だと指摘した。
設問 本文中の下線①について、B さんがそう指摘した理由を50字以内で述べよ。
解答・解説を表示
解答例:パッチ前に侵入されて暗号鍵が盗まれていた場合、その鍵を使った不正を防げないから(39字)
パッチは今後の侵入を防ぐだけで、すでに持ち出された鍵は無効にならない。Adobe もパッチと鍵の変更の両方を求めている。「パッチが不完全だから」は、パッチ自体の欠陥を前提にしていて、今回の理由とは異なる。