2026年9月14日(UTC)、メール/マーケティング基盤の Brevo(旧 Sendinblue)は、漏洩した Cloudflare API キーを使われ、CDN エッジ上で自社ページと顧客埋め込み用 JavaScript に悪意あるスクリプトを注入された、と事後報告しました(Brevo post-mortem/BleepingComputer)。表示されたのは偽の Cloudflare 検証画面から、Windows でコマンドを実行させる ClickFix 誘導です。
オリジンのファイルは触られず、エッジでレスポンスが書き換えられた点が、検知を難しくした核心です。
何が起きたのか
Brevo の説明を骨格だけ抜き出すと、次のとおりです。
- 長期有効・全権限の Cloudflare API キーが、アプリケーションのソースコードにハードコードされていた。攻撃者はこれを入手し、アラートなしに Worker・ルート・DNS を作成できた。
- 9月14日 UTC 16:07〜20:30 前後(約5時間半)、悪意ある Worker がエッジで応答を改ざん。CSP などのセキュリティヘッダーも除去された。
- 影響範囲には
brevo.com/sendinblue.com/ オンボーディング系、sibforms.com、および顧客サイトに埋め込まれる フォームスクリプト・Conversations ウィジェット・SDK ローダーが含まれる。 - 検知後、Worker/ルート削除、侵害キーと関連認証情報の無効化、ハードコード削除、攻撃者ホスト削除、エッジキャッシュのパージを実施。
- Brevo によると、app.brevo.com・API・メール配信基盤・顧客アカウントデータ自体は影響なし。キーは8月下旬から漏洩していた可能性があるが、それ以前の悪用痕跡は確認していない、としています。
セキュリティ企業 Sansec は、影響コンポーネントを使うサイトが最大で約10万件に及ぶ可能性がある、と指摘しています。
ClickFix と、WordPress 管理者向けの追加経路
訪問者には偽の「Cloudflare, verify you are human」画面が出され、Win+R → Ctrl+V → Enter といった手順で、クリップボードに仕込まれたコマンドを実行するよう誘導されました。表示は選択的で、全員に出たわけではない、という説明です。
Brevo ウィジェットを埋め込んだ WordPress では、管理者がログイン中かどうかを見て、偽装プラグイン(「Web Media Optimizer」など)のアップロードを試みる動きも報告されています。インストールされるとプラグイン一覧から自身を隠し、must-use ディレクトリへコピーし、攻撃者側サーバーへ定期接続する、という永続化パターンです。
9月14日に影響ウィジェットを載せたサイトへ、ログイン状態で触った WordPress 管理者は、その日に入った不審プラグインの有無確認と、見つかった場合の削除・管理者パスワード回転が推奨されています。
なぜ「普通の整合性チェック」では足りなかったか
Brevo が強調しているのは、次の一点です。
> Worker はエッジで応答を書き換え、CSP などを外した。オリジンのサーバーやファイルは変わっていないため、通常の完全性チェックでは検知できない。
CDN/エッジ権限は、実質的に「公開コンテンツの編集権」です。しかも今回は、顧客サイト側が自前でホスティングしていない 埋め込みスクリプトまで改ざん対象になったため、被害が顧客ドメインへ横断しました。マーケティング・フォーム・チャットウィジェットは「便利な外部依存」であると同時に、自分のサイトの信頼境界の一部です。
別件として、Brevo は9月10日前後にも SSO 関連インシデントを公表しており、Trezor 向けフィッシングなどへつながった、との報道があります。今回の Cloudflare 侵害との関連は、Brevo 側から明確な回答は出ていません。
ぼくたち側のチェックリスト
派手なマルウェア名より、運用の穴の方が再利用されやすいです。
- Cloudflare(や同等 CDN)の API キーを、ソースや長期フル権限で持っていないか
- 顧客向け埋め込みスクリプトの配信経路に、誰が何を書けるか
- SRI(Subresource Integrity)や CSP を、サードパーティ埋め込みにどこまで張れているか
- 「ベンダーのステータスページ/事後報告」を、自社のインシデント手順に接続しているか
5時間半でも、埋め込みの到達範囲が広いと被害面は大きくなります。依存の更新頻度や監視より先に、鍵の置き方が先に来る事故でした。