Mautic 7にコード実行の脆弱性、7.2.2で修正
Mautic 7のキャンペーン取り込み機能に、サーバー上で任意のコードを実行されかねない脆弱性が見つかりました。7.0.0から7.2.1を使っている組織は、修正版の7.2.2へ早めに更新してください。更新までは、取り込み権限を持つアカウントの見直しが当面の備えになります。
急ぎ度: 早めに
CVSS v3は9.9で、サーバー上でコードを実行される恐れがあり、修正版7.2.2も出ています。KEVへの掲載は確認できていないため、数日以内の更新計画を立てるのが現実的です。
関係があるか
Mautic 7系を自社のサーバーやコンテナーで運用している組織が対象です。複数の担当者にキャンペーンの取り込み権限を渡している環境は、特に確認が必要です。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| mautic/core(Packagist) | 7.0.0以上、7.2.2未満 | 7.2.2 |
確かめ方
- 1Composerで導入している場合は、Mauticのディレクトリで
composer show mautic/coreを実行し、versionsの値が7.0.0以上7.2.2未満かを確認します。 - 2公式のDockerイメージを使っている場合は、稼働中のコンテナーが基にしているイメージのバージョンを確認します。
- 3管理画面で、キャンペーンの取り込みを実行できるロールと、そのロールを持つユーザーを洗い出します。
何が起きたか
Mautic 7のキャンペーン取り込み機能に、アップロードしたファイルを経由してサーバー上でコードを実行されかねない脆弱性があります。
キャンペーンのアーカイブを取り込むと、同梱されたアセットファイルがWebから見えるメディアディレクトリにコピーされます。このとき、ファイル名も種類も制限されません。そのため、サーバー側で動くスクリプトまで、公開領域にそのまま置けてしまいます。
分類はCWE-434(無制限のファイルアップロード)とCWE-94(コードインジェクション)です。7.2.2で修正されました。
攻撃の流れ
-
1
権限のある利用者
キャンペーンの取り込み権限を持つアカウントでログインします。
-
2
取り込みの実行
管理画面かAPIから、細工したキャンペーンアーカイブを取り込みます。
-
3
公開領域に配置
同梱ファイルが、名前も種類も検査されないまま公開メディアディレクトリに置かれます。
-
4
コード実行
ディレクトリ単位の設定を読み込むサーバーでは、置かれたスクリプトがWebサーバーの権限で動きます。
どう悪用されるか
悪用にはログインが必要です。ただし、必要なのはキャンペーンの取り込みを作成できる権限だけで、管理者権限は要りません。画面からも、/api/campaigns/importのAPIからも実行できます。ネットワーク経由で成立し、被害者側の操作は要りません。
コードが実際に動くかどうかは、Webサーバーの設定に左右されます。ディレクトリ単位の設定を読み込む構成が該当し、公式Dockerイメージの標準のApache設定もこれに当たります。その場合、Webサーバーユーザーの権限でコードが実行されます。Mauticの設定ファイル、アプリケーションのシークレット、コンタクトのデータに触れられる可能性があります。CVSSのスコープが変更ありとされているのも、影響がMautic本体の外に及び得るためです。
筆者は、この脆弱性が現実に響くのは、フィッシングなどで一般ユーザーのアカウントが盗まれた場合だと見ています。管理者でなくても足りるので、権限の広いロールを多くの人に配っている組織ほど、侵入口が増えます。
今すぐやること
-
1
稼働中のバージョンを確認する
本番・検証を問わず、Mauticを動かしているすべての環境で版を調べます。見落としやすい検証環境やテスト用のコンテナーも対象に含めてください。
composer show mautic/core -
2
7.2.2に更新する
修正版の7.2.2へ更新します。公式のDockerイメージを使っている場合は、修正版を含むイメージに入れ替えてコンテナーを作り直します。更新前にはデータベースとファイルのバックアップを取ってください。
-
3
取り込み権限を棚卸しする
キャンペーンの取り込みを実行できるロールと、そのユーザーを一覧にします。業務に要らない権限は外し、退職者や使っていないアカウントは無効にします。
-
4
公開領域に不審なファイルがないか調べる
Webから見えるメディアディレクトリの下に、画像や文書ではないファイルや、見覚えのないスクリプトが置かれていないかを確認します。見つかった場合は侵害されたものとして扱い、設定ファイル内のシークレットとデータベースの認証情報を差し替え、アクセスログも調べます。
すぐ更新できないとき
更新まで時間がかかる場合は、次の措置で被害の入り口を狭められます。いずれも修正の代わりにはならない一時的な対策です。
- キャンペーンの取り込み権限を、信頼できる最小限のユーザーだけに絞る
- リバースプロキシやWAFで、/api/campaigns/importへのアクセスを許可する接続元に限る
- Apacheを使っている場合は、メディアディレクトリでディレクトリ単位の設定を読み込ませない(AllowOverride None)ようにし、スクリプトの実行も止める
背景
Mauticはオープンソースのマーケティングオートメーションで、問い合わせフォームやメール配信、キャンペーンの自動化を担います。顧客や見込み客のコンタクトデータが集まるうえ、メール送信サーバーや外部サービスへの接続情報もデータベースや設定ファイルに保管されます。Webサーバー上でコードが動くと、こうした情報にまとめて手が届きます。
アップロードされたファイルを公開ディレクトリに置く処理は、実行可能なファイルを混入できると、PHPなどのWebアプリで古くから悪用されてきた型です。今回は管理者より低い権限でも到達できる点が特徴で、取り込み権限を持つ現場担当者のアカウントが侵入口になり得ます。
よくある質問
Q.Apache以外のWebサーバーで動かしていれば、更新しなくてもよいですか。
まだ分かっていないこと
- 実際の攻撃で悪用された事例や、侵害を示す具体的な痕跡は分かっていません。最新の状況はMauticのセキュリティアドバイザリ(GHSA-mxjf-pghx-h299)で確認してください。
- ベンダーが正式な回避策を示しているかは分かっていません。上の回避策は、一般的な設定の見直しとして挙げたものです。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| https://packagist.org | mautic/core |
7.0.0 以上 7.2.2 未満 |
7.2.2 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
An unrestricted file upload vulnerability exists in the campaign import feature of Mautic 7. When processing an uploaded campaign archive, the application copies the bundled asset files into a publicly accessible media directory without restricting their file names or types. An authenticated user with permission to create campaign imports can exploit this through the user interface or the API (/api/campaigns/import) to place arbitrary files, including server-side scripts, in the web root. Administrator privileges are not required. On web servers that honor per-directory configuration, such as the default Apache setup of the official Mautic Docker image, this leads to remote code execution with the privileges of the web server user, including access to the Mautic configuration, application secrets, and contact data.
出典: CVE.org (CVE Program・cvelistV5) NVD