CVE-2026-42556Postiz是一款AI社交媒体调度工具。在2.21.6至2.21.7之前的版本中存在一个高危存储型XSS漏洞。任何能够创建帖子的认证用户都可以通过篡改保存请求,在帖子内容中存储任意HTML代码。攻击者随后可以生成包含该恶意内容的公开预览链接(/p/<postId>?share=true)。当其他用户访问该链接时,应用程序会使用dangerouslySetInnerHTML在主源上直接渲染这些HTML,导致恶意脚本在受害者浏览器中执行。该漏洞已在2.21.7版本中修复。
该漏洞的根本原因在于Postiz对用户输入内容缺乏严格的过滤和转义,直接使用了React的dangerouslySetInnerHTML属性进行渲染。攻击流程如下:首先,攻击者需要拥有一个合法的Postiz账户并登录。其次,在创建新帖子的过程中,攻击者拦截前端发送的保存请求(如通过Burp Suite或浏览器开发者工具),并将帖子内容字段修改为包含恶意JavaScript代码的HTML payload(例如<script>alert(1)</script>)。服务器接收并保存了这段被篡改的数据。接着,攻击者利用系统的分享功能,生成指向该帖子的公开预览链接。当受害者(通常是其他拥有更高权限的用户或管理员)点击此链接时,后端会从数据库读取存储的恶意HTML,并在预览页面组件中通过dangerouslySetInnerHTML进行渲染。由于React不转义通过该属性插入的HTML,浏览器会解析并执行其中的JavaScript代码。这可能导致攻击者窃取受害者的Session ID、Cookie等敏感信息,甚至以受害者身份执行未授权操作。