CVE-2021-47842CVE-2021-47842是StudyMD 0.3.2版本中存在的一个高危安全漏洞,属于持久型跨站脚本攻击(Stored XSS)。StudyMD是一款流行的医学学习Markdown编辑器,用于创建和管理医学相关的学习笔记文档。该漏洞允许未经认证的攻击者通过上传精心构造的Markdown文件,在其中嵌入恶意JavaScript脚本代码。当其他用户打开或查看这些被植入恶意代码的Markdown文件时,攻击者的JavaScript payload将在受害者浏览器上下文中执行,从而实现会话劫持、敏感信息窃取、钓鱼攻击等恶意行为。由于恶意脚本存储在服务器端,一旦上传成功即可持续影响所有访问该文件的应用,具有广泛的攻击面和较高的利用稳定性。漏洞的CVSS评分达到7.2分,严重等级为HIGH,对使用该应用的个人和组织构成显著安全威胁。攻击者无需任何特殊权限即可利用此漏洞,且无需用户交互即可完成攻击链,建议受影响用户尽快升级到最新版本或采取临时防护措施。
StudyMD 0.3.2版本在处理Markdown文件渲染时缺乏足够的输入验证和输出编码机制。攻击者可以利用Markdown支持的HTML嵌入特性,在文件中插入包含JavaScript代码的HTML标签。当应用解析并渲染这些Markdown内容时,恶意脚本未经适当转义即被嵌入到HTML页面中,导致浏览器将其作为可执行脚本处理。典型的攻击payload如:<script>alert(document.cookie)</script>或<img src=x onerror=恶意代码>。由于应用未对用户上传的Markdown内容进行安全过滤,恶意代码被永久存储在服务器端数据库或文件系统中。当其他用户通过Web界面访问这些被污染的文件时,浏览器会自动执行嵌入的恶意脚本。由于浏览器同源策略的限制被绕过,攻击者可以窃取用户的会话令牌、劫持账户、进行CSRF攻击或植入进一步的攻击载荷。此漏洞影响所有通过StudyMD查看Markdown文件的用户,攻击者只需具备文件上传权限即可发起攻击。