漏洞总结:Sensitive fields exposed in revision history (CVE-2023-39943) 1. 漏洞概述 Directus 在 表中存储修订记录(当项目创建或更新时)。由于修订快照代码未一致地调用 清理管道,导致敏感字段(包括用户令牌、双因素认证密钥、外部身份验证器、认证数据、存储的凭据以及 AI 提供商 API 密钥)可能以明文形式存储在修订记录中。 2. 影响范围 受影响包: (npm) 受影响版本: 修复版本: 具体影响: 任何拥有 (或 flow logs)读取权限的用户或服务账户,均可检索到本应被隐藏或加密的字段值。 泄露数据: , , , , , , , 后果: 可能导致账户接管(通过被盗令牌或2FA密钥)或第三方API密钥的未授权使用。 3. 受影响代码路径 (Affected code paths) 1. Item create/update revisions: 写入 的 (snapshot) 字段未经过 处理。这意味着隐藏/加密的字段在存储前未被清理,且关系字段也被错误地包含在内。 2. Authentication service: 当用户因多次重复登录尝试被自动挂起时,修订记录是使用原始用户对象(包含所有敏感字段)创建的,而不是经过清理的 delta。