CVE-2026-9626CVE-2026-9626是WordPress JSON API User插件中存在的一个存储型跨站脚本(Stored XSS)漏洞,CVSS评分为6.4,属于中危级别。该漏洞影响4.1.0及以下版本,由Wordfence安全团队的安全研究员发现并报告。JSON API User插件是一款广泛使用的WordPress插件,允许通过JSON API接口管理WordPress用户和评论功能。该漏洞存在于插件的post_comment API端点中,具体位于post_comment()函数内。攻击者可以通过该端点的content参数注入恶意的JavaScript脚本,由于插件未对comment_content值进行充分的HTML清理和转义处理,恶意脚本将直接被存储到WordPress数据库中。此外,攻击者还可以通过设置comment_approved=1参数来自我审批评论,绕过正常的评论审核机制。当其他用户访问包含恶意脚本的页面时,注入的脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、权限提升等严重后果。该漏洞需要认证后才能利用,攻击者最低需要订阅者(subscriber)级别的访问权限,属于低权限提权型漏洞利用场景。
该漏洞的根本原因在于JSON API User插件的post_comment()函数中对用户输入缺乏充分的清理和转义处理。具体技术细节如下:
1. **漏洞位置**:插件文件controllers/User.php中的post_comment()函数(约第1007行),对应post_comment API端点。
2. **漏洞原理**:当用户通过API提交评论时,post_comment()函数接收用户提供的comment_content参数,并将其直接传递给WordPress核心函数wp_insert_comment()进行评论插入操作。在此过程中,插件未调用sanitize_text_field()、wp_kses()或esc_html()等安全函数对HTML标签和JavaScript代码进行过滤和转义。
3. **绕过审核机制**:更为严重的是,post_comment()函数允许调用方通过comment_approved参数直接设置评论审批状态为1(即已审批),这使得攻击者提交的恶意评论可以绕过WordPress的评论审核队列,直接在前台页面显示。
4. **利用方式**:拥有subscriber级别权限的攻击者可以通过构造包含恶意JavaScript代码的评论内容(如<script>alert(document.cookie)</script>或更复杂的payload),通过API端点提交。由于评论内容未经清理就被存储到数据库中,当其他用户访问该评论所在的页面时,恶意脚本将在其浏览器上下文中执行。
5. **影响范围**:由于是存储型XSS,恶意脚本会持久化存储在数据库中,影响所有访问相关页面的用户,包括管理员,具有较高的危害性。