CVE-2026-39942Directus 是一个用于管理 SQL 数据库的实时 API 平台。在 11.17.0 版本之前,其 PATCH /files/{id} 端点存在严重的访问控制缺陷。攻击者可以利用该接口接受用户控制的 filename_disk 参数,将其设置为匹配其他用户文件的存储路径。这使得攻击者能够覆盖目标文件的内容,并操纵 uploaded_by 等元数据字段来掩盖篡改行为,从而破坏系统数据的完整性和隔离性。
该漏洞源于 Directus 文件处理组件在处理 PATCH 请求时的逻辑缺陷。具体而言,受影响版本中的 `/files/{id}` 端点允许客户端直接指定 `filename_disk` 参数,该参数决定了文件在存储系统中的物理路径。由于服务器端未对用户提交的路径进行充分的权限校验和所有权验证,攻击者可以将该参数指向其他用户的文件路径。当攻击者发送包含恶意 `filename_disk` 值的请求时,系统会错误地执行文件写入操作,导致目标文件被攻击者控制的数据覆盖。此外,攻击者还能同步修改 `uploaded_by` 等元数据字段,伪造文件来源,使得审计和追踪变得困难。这一组合漏洞利用了不安全的直接对象引用(IDOR)和访问控制缺失,严重威胁多租户环境下的数据安全。