CVE-2025-63317CVE-2025-63317是Todoist v8896版本中存在的一个存储型跨站脚本(XSS)漏洞。该漏洞位于Todoist的/api/v1/uploads API端点,攻击者可以通过上传包含恶意JavaScript代码的SVG文件来触发此漏洞。由于Todoist在处理上传的SVG文件时未对其进行适当的清理和过滤,SVG文件中嵌入的JavaScript代码会被保留并在后续被其他用户访问时执行。当受害者从任务或评论中打开这个恶意SVG附件时,攻击者注入的JavaScript代码会在受害者的浏览器上下文中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等安全问题。由于该漏洞需要用户交互才能触发(受害者需要打开附件),因此攻击具有一定的局限性,但仍然对使用Todoist的企业和个人用户构成安全威胁。Todoist作为一款广泛使用的任务管理工具,其用户基数庞大,该漏洞的潜在影响范围较广。
Todoist v8896版本在处理文件上传功能时存在安全漏洞。漏洞点位于/api/v1/uploads API端点,该端点负责处理用户上传的各种文件类型,包括SVG格式文件。SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,它支持嵌入JavaScript代码(通过<script>标签或事件处理器如onload、onclick等)。Todoist在接收SVG文件上传时,仅检查文件扩展名和基本的MIME类型,但没有对SVG内容进行深度清理或安全过滤。具体来说,系统没有执行以下安全措施:1) 移除或转义SVG中的<script>标签;2) 禁用SVG内的事件处理器属性;3) 应用内容安全策略(CSP)限制脚本执行;4) 对SVG内容进行DOMPurify等库的净化处理。攻击者可以构造一个包含恶意JavaScript的SVG文件,通过Todoist的上传接口将其存储在服务器上。当其他用户查看包含该SVG附件的任务或评论时,浏览器会渲染SVG并执行其中的JavaScript代码,从而实现XSS攻击。攻击者可以利用此漏洞窃取用户的认证令牌、读取页面内容、模拟用户操作或进行进一步的攻击。