Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-9558-poc — CVE-2026-9558 (SSTI Mautic Theme) のエクスプロイト可能性のPoC | Kitploit
ツール/GitHubGitHub/covepseng/cve-2026-9558-poc
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ペイロード開発ラボと実践
GitHubcovepseng/cve-2026-9558-poc

cve-2026-9558-poc

CVE-2026-9558 (SSTI Mautic Theme) のエクスプロイト可能性のPoC

リポジトリを見る
192ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-9558 — Mauticテーマテンプレートのサーバーサイドテンプレートインジェクション(SSTI)からフル管理者乗っ取りへ

目次

  • 概要
  • 影響を受けるバージョン
  • 根本原因
  • 分析
  • リポジトリ構成
  • 必要条件
  • 使用方法
  • 期待される出力
  • 参考資料
  • 免責事項

概要

CVE-2026-9558は、Mauticのテーマエンジンにおけるサーバーサイドテンプレートインジェクション(SSTI)の脆弱性です。テーママネージャを通じてアップロードされるテーマは、Twigテンプレートを含むZIPアーカイブであり、影響を受けるバージョンでは、これらのテンプレートはアプリケーションのデフォルトのTwig Environmentによって、 SandboxExtension ポリシーが適用されずにレンダリングされます。

Twigは map、 filter、 reduce などのフィルタを介して任意のPHP呼び出し可能関数を呼び出すことができるため、テーマのアップロード権限を持つ認証済みユーザーは、そのテーマのテンプレートがレンダリングされるとすぐに任意のシステムコマンドを実行するテーマをインストールできます。これは、ユーザーがそのテーマに対してメールまたはランディングページビルダーを開いたときに自動的に発生します。

{{ ["id"] | map("system") | join }}

影響を受けるバージョン

影響を受ける範囲修正バージョン
>= 1.3.0、 < 4.4.134.4.13 (ELTS経由で4.4.20)
>= 5.0.0、 < 5.2.115.2.11
>= 6.0.0、 < 6.0.96.0.9
>= 7.0.0、 < 7.1.27.1.2

このラボは、修正前の最後のリリースである 7.1.1 を対象としています。


根本原因

Mauticの開発者向けドキュメントには、テーマテンプレートは制限されたTwigサンドボックスでレンダリングされると記載されています。

Mauticはユーザーがアップロードしたテーマテンプレートを、制限されたTwigサンドボックス環境でレンダリングします。サンドボックスは、リモートコード実行、データ漏洩、ファイルシステム探索を可能にする可能性のある特定の関数やフィルタをブロックします。

影響を受けるバージョンでは、そのサンドボックスポリシーは存在しません。修正(7.1.2)では、map、filter、reduceフィルタ、およびsource()(任意ファイル読み取り)やconfigGetParameter()(DB認証情報とアプリケーションシークレットキーの漏洩)を含む一連の関数をブロックする、拒否リストベースのSecurityPolicyInterface実装であるThemeSandboxPolicy.phpが導入されています。修正のインラインコメントには、このPoCで使用される正確なペイロードの形状が文書化されています。

private const DENIED_FILTERS = [
    'map',    // {{ ['id']|map('system')|join }} -> RCE
    'reduce',
    'filter',
];

このポリシー以前は、テーマレンダリングパスにそのような制限は一切存在しませんでした。


分析

このチェーンは、アドバイザリのCVSSベクトルにおける PR:L 前提条件に合わせて、管理者ではなく、テーマ(作成/編集)およびメール(作成/編集)の権限グループのみを持つ低権限アカウントに対してエンドツーエンドで検証されました。

  1. コマンド実行 — 修正されたテーマをアップロードし、メールビルダーを開くと、テーマの .twig ファイルに埋め込まれた system() 呼び出しが実行されます。
  2. 認証情報の窃取 — 同じプリミティブを使用してMautic自身の config/local.php を読み取り、データベース認証情報とアプリケーション secret_key を平文で公開します。
  3. 権限昇格 — 盗まれたデータベース認証情報を使用して、SSTIペイロード内から直接 PDO 接続を開き、低権限アカウントを role_id 1 (管理者)に昇格させ、Mauticのアプリケーションレベルの権限チェックを完全にバイパスします。
uid=33(www-data) gid=33(www-data) groups=33(www-data)
'db_host' => 'mautic-db',
'db_user' => 'mautic',
'db_password' => 'mauticpass',
'secret_key' => 'a15d98da823d751f4a0a5219123f4afbd90eb254074b1cea07518a3c0db70bcd',
rows_updated=1
confirm: 2|priv-esc|1

前提条件が経験的に確認されました

アドバイザリには PR:L と記載されています。このラボでは、実際に特定の低権限の前提条件を確認しています。レンダリングトリガーに到達するには、テーマのアップロード権限とメール作成権限の両方が必要であり、単一の汎用的な低権限ではありません。公式の修正以外にこれを制限する回避策はありません。唯一文書化されている緩和策は、core:themes:create を信頼できる管理者に制限することです。


リポジトリ構成

cve-2026-9558-poc/
├── podman-compose.yml       # MariaDB + Mautic 7.1.1-apache、分離されたブリッジネットワーク
├── Dockerfile.mautic        # 公式イメージを脆弱性のあるリリースに固定
├── install.sh                # 非対話型 mautic:install ブートストラップ
└── sparse/
    ├── config.json           # 悪意のあるテーママニフェスト
    ├── sparse.zip            # アップロード可能なテーマ
    └── html/
        ├── email.html.twig   # SSTIペイロードテンプレート。ファイルの末尾にある、任意のコマンドを注入するためのプレースホルダーを参照してください。
        ├── ...               # その他の .twig ファイル
        └── .../              # その他のディレクトリ (例: css)

必要条件

ツールバージョン備考
Podman≥ 4.0podman-compose が必要
curl任意install.sh で準備完了を確認するために使用

このPoCでの悪用は、Mautic Web UI(テーママネージャアップロード→メールビルダー)を通じて手動で実行され、実際の攻撃者のワークフローに合わせています。テーマのアップロードはファイル操作であり、分析のこの段階で自動化する価値のあるAPI呼び出しではありません。


使用方法

1. ラボのビルドと起動

podman-compose up -d
./install.sh

install.sh はアプリケーションコンテナが接続を受け入れられるようになるのを待ち、その後 mautic:install を非対話的に実行して最初の管理者アカウントをブートストラップします。

2. 低権限アカウントを作成

UIから、テーマ(作成/編集)とメール(作成/編集)のみが有効なカスタムロールを作成し、そのロールに割り当てられたユーザーを作成します。これにより、管理者としてテストする代わりに PR:L 前提条件を再現します。

3. 悪意のあるテーマをアップロード

低権限ユーザーとしてログインします。テーマ→アップロードから、sparse/config.json と sparse/html/page.html.twig(またはペイロード行が追加された組み込みテーマの修正コピー)から構築されたZIPをアップロードします。

4. レンダリングをトリガー

チャンネル→メール→新規から、アップロードしたテーマをテンプレートとして選択し、ビルダーを開きます。テーマがプレビュー用にレンダリングされるとすぐにペイロードが実行されます。

5. クリーンアップ

podman-compose down -v

期待される出力

uid=33(www-data) gid=33(www-data) groups=33(www-data)

参考資料

リソースリンク
アドバイザリGHSA-9fx4-7cmj-47vg
修正(サンドボックスポリシー)ThemeSandboxPolicy.php
脆弱性のあるリポジトリmautic/mautic
完全な分析 — ブログ記事return-zero.dev/posts/cve-2026-9558

免責事項

このリポジトリは教育目的およびローカルでの悪用可能性分析のみを目的としています。すべてのテストはセルフホストのコンテナ環境に対して実施されました。このPoCを、所有していない、または明示的な書面によるテスト許可を得ていないシステムに対して実行しないでください。

ツールをダウンロード