CVE-2025-66563CVE-2025-66563是GitHub安全团队发现的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞影响Monkeytype应用25.49.0及更早版本。Monkeytype是一款极简且可定制的打字测试应用,用户可以提交自定义引文(quotes)供打字练习使用。漏洞根源在于应用对用户输入的quote.text和quote.source字段处理不当,这两个字段的内容被直接插入到网页的DOM中而未进行充分的HTML转义。虽然应用尝试使用引号和textarea标签进行一些转义操作,但攻击者仍可构造特殊的恶意载荷绕过这些防护措施。当其他用户查看包含恶意代码的引文时,攻击者注入的JavaScript代码将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重后果。由于攻击需要用户查看恶意引文,因此需要一定的社交工程手段。CVSS 3.1评分为6.1,属于中等严重程度。
漏洞存在于Monkeytype的引文提交功能中。当用户提交新的打字引文时,系统将quote.text和quote.source作为用户输入存储。问题出在后端对这些输入的处理上——它们被直接插入到DOM中而缺乏严格的HTML转义。应用虽然尝试使用quotes和textarea标签进行转义,但这种防护方式存在缺陷。攻击者可以利用HTML标签的属性值或事件处理器来注入恶意代码。例如,通过在引文文本中嵌入<script>标签、img标签的onerror事件或其他JavaScript事件处理器,可以绕过现有的防护机制。当其他用户加载这些恶意引文进行打字练习时,浏览器会解析并执行注入的脚本代码。攻击成功的前提是受害者查看或使用包含恶意代码的引文。由于引文功能是Monkeytype的核心功能之一,攻击者可以通过大量提交恶意引文来扩大攻击面。该漏洞属于存储型XSS,比反射型XSS危害更大,因为恶意代码会被持久化在服务器上,所有访问该引文的用户都会受到影响。