CVE-2021-47839CVE-2021-47839是Marky 0.0.1版本中存在的一个高危安全漏洞,类型为持久型跨站脚本攻击(Persistent Cross-Site Scripting)。Marky是一款开源的Markdown编辑器,该漏洞允许攻击者通过上传包含恶意JavaScript代码的Markdown文件来注入攻击载荷。当其他用户打开或预览这些被植入恶意代码的Markdown文件时,嵌入其中的JavaScript脚本将在受害者浏览器上下文中执行,从而窃取用户会话Cookie、劫持用户账户、执行任意客户端操作,甚至可能进一步利用浏览器的安全漏洞实现远程代码执行。漏洞的严重性在于其持久化特性——恶意代码会永久存储在服务器上,所有访问该文件的用户都会受到影响,无需攻击者与受害者进行任何直接交互。由于该漏洞无需认证即可利用,且CVSS评分达到7.2分(高危级别),对使用该应用的用户构成严重安全威胁。建议受影响的用户立即停止使用存在漏洞的版本,并关注官方发布的安全更新。
Marky 0.0.1的持久型XSS漏洞源于应用程序在处理Markdown文件内容时缺乏充分的输入验证和输出编码。该应用允许用户上传Markdown文件并在线预览,但服务器端未对用户提交的Markdown内容进行安全过滤就直接存储和展示。攻击者可以利用这一漏洞在Markdown文件中嵌入HTML标签或JavaScript代码,例如使用script标签、img标签的onerror事件、a标签的javascript:协议等。当受害者通过Web界面打开这些被污染的Markdown文件时,恶意代码会在其浏览器中执行。漏洞利用的关键在于Markdown解析器对原始HTML的支持,以及应用未对特殊字符进行HTML实体编码。攻击者可以通过上传构造的.md文件实现:1)窃取用户Cookie和会话令牌;2)重定向用户到钓鱼网站;3)修改页面内容进行钓鱼攻击;4)利用浏览器漏洞进行进一步攻击。该漏洞的持久化特性意味着一旦恶意文件被上传,所有查看该文件的用户都会成为受害者。