WordPress GetPaid 插件 HTML 注入漏洞 CVE-2021-47948
CVE-2021-47948 (CVSS 5.4): 经过身份验证的攻击者可以通过 GetPaid 2.4.6 中的帮助文本字段注入任意 HTML,从而在支付表单上启用存储型 XSS 攻击。

MITRE ATT&CK® TTPs (3)
Click any technique to view details on attack.mitre.org
WordPress GetPaid 插件 HTML 注入漏洞 CVE-2021-47948
执行摘要
根据 2026-05-10 发布的国家漏洞数据库(NVD)条目,WordPress GetPaid 插件(版本至 2.4.6)存在存储的 HTML 注入漏洞,允许经过身份验证的攻击者通过支付表单中的帮助文本字段注入任意 HTML 代码。CVE-2021-47948 被分配给此漏洞,CVSS v3.1 基础得分为 5.4(中等严重性),该漏洞使得具有贡献者级别或更高权限的攻击者能够注入恶意 HTML —— 包括图像标签和 JavaScript —— 当管理员或客户查看被破坏的支付表单时执行。该漏洞被归类在 CWE-79(在 Web 页面生成期间输入的不当中和),表明了一个存储的跨站脚本(XSS)向量。
技术分析
GetPaid 插件(之前称为 WP Invoicing)是一个广泛使用的 WordPress 扩展,用于创建发票、支付表单和管理订阅。根据 NVD 条目,漏洞存在于支付表单构建器界面中的 帮助文本 字段。插件在将用户输入存储到数据库并在浏览器中渲染之前,未能对其进行清理。
至少具有贡献者级别权限的经过身份验证的攻击者可以制作支付表单,并在帮助文本字段中插入任意 HTML。此输入存储在服务器端,并提供给任何查看表单的用户 —— 包括网站管理员和客户。注入的 HTML 可以包括带有 onerror 事件处理程序的 <img> 标签或 <script> 标签,从而实现存储的 XSS 攻击。
CVSS 向量字符串(AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N)揭示了攻击面:基于网络的利用,复杂度低,需要低权限认证和用户交互(受害者必须查看表单)。范围变化(S:C)表明注入的代码可以影响超出漏洞组件的资源,例如窃取会话 cookie 或在受害者的上下文中执行操作。
NVD 条目没有指定插件是否发布了修补版本。截至本文撰写时,WordPress 插件库显示版本 2.4.6 为最新稳定版本,但漏洞是在 2021 年分配的,表明可能在后续更新中静默回溯了修复。防御者应验证其安装版本与插件更新日志。
缓解措施与建议
WordPress 网站管理员应立即检查安装的 GetPaid 插件版本。如果运行的是 2.4.6 或更早版本,请更新至 WordPress 插件库中的最新可用版本。如果不存在修补版本,请使用角色管理插件(如 User Role Editor)限制贡献者级别和作者级别角色创建或编辑支付表单。
作为补偿控制,启用带有规则的 Web 应用程序防火墙(WAF),以阻止对支付表单端点的 POST 请求中的常见 XSS 有效载荷。此外,审计现有支付表单中的帮助文本字段中的可疑 HTML —— 查找意外的 <script>、<img onerror> 或 <iframe> 标签。审查服务器访问日志,查找来自低权限用户帐户的异常表单提交。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。

