CVE-2025-64747Directus是一款实时API和App仪表板,用于管理SQL数据库内容。该产品中存在一个存储型跨站脚本(Stored XSS)漏洞,影响11.13.0之前的所有版本。攻击者需要具备文件上传(upload files)和编辑项目(edit item)权限,即可通过Block Editor界面注入恶意JavaScript代码。该漏洞的独特之处在于攻击者能够结合文件上传功能与iframe的srcdoc属性,成功绕过内容安全策略(CSP)的限制。恶意脚本会被持久化存储在数据库中,当其他用户访问包含恶意内容的页面时,脚本会自动执行,可能导致会话劫持、敏感数据窃取、凭据盗取等严重安全风险。由于漏洞需要特定权限才能利用,且CVSS评分显示机密性、完整性和可用性影响均为低级别,因此被评定为中等严重程度。
该漏洞存在于Directus的Block Editor组件中。攻击者首先利用文件上传功能上传包含恶意载荷的文件,然后通过Block Editor的编辑功能在内容中注入特殊构造的HTML/JS代码。关键利用技术是利用iframe标签的srcdoc属性,该属性允许直接在内联定义iframe内容,从而绕过传统CSP对外部脚本加载的限制。攻击者构造的payload示例:<iframe srcdoc='<script>恶意代码</script>'>,当页面渲染时,浏览器会执行srcdoc中的脚本内容。由于该内容存储在数据库中属于同一源,浏览器不会将其视为外部或不受信的脚本。攻击者可通过此方式获取用户会话cookie、执行任意操作、修改页面内容或重定向用户到钓鱼站点。漏洞的根因在于Directus对Block Editor输入内容的过滤和转义不充分,未能有效防止危险HTML标签和属性的使用。