CVE-2021-47837Markdownify 1.2.0版本存在持久型跨站脚本(Stored XSS)漏洞,该漏洞存在于markdown文件处理功能中。攻击者可以通过上传包含恶意脚本代码的markdown文件来利用此漏洞。当其他用户打开或预览这些被植入恶意代码的markdown文件时,嵌入的JavaScript代码会在受害者浏览器中执行。由于这是持久型XSS,恶意代码会存储在服务器或文件系统中,只要文件被访问就会触发。攻击者可利用此漏洞窃取用户会话信息、劫持用户账户、进行钓鱼攻击,甚至在某些情况下可能进一步利用导致远程代码执行。
该漏洞源于Markdownify在处理markdown文件时未对用户输入进行充分的HTML转义和过滤。攻击者可以在markdown文件中插入<script>标签或其他HTML/JS事件处理器(如<img src=x onerror=alert(1)>),这些内容会被Markdownify直接保存而不会被转义。当文件被渲染展示时,浏览器会将其作为可执行脚本执行。具体来说,Markdownify的解析器在处理特殊字符时存在缺陷,允许绕过常见的XSS防护机制。攻击者可以利用这一点注入任意JavaScript代码,这些代码会在文件被打开时自动执行,绕过同源策略限制。