CVE-2025-64748Directus是一个实时API和App仪表板,用于管理SQL数据库内容。该产品在11.13.0之前的版本中存在一个信息泄露漏洞。漏洞允许已认证用户(即使只拥有读取权限)在搜索功能中访问隐蔽或标记为敏感的字段。虽然系统对敏感字段的值进行了掩码处理(显示为****),但攻击者可以通过观察查询返回的记录数量或记录存在性来推断敏感信息的存在性。这种侧信道攻击方式使得攻击者能够对敏感数据进行枚举攻击,例如猜测密码、识别有效用户名、枚举隐藏的订单ID等。攻击者利用搜索功能的返回结果差异,逐步缩小可能的值范围,最终获取敏感数据的有价值信息。该漏洞的严重性在于它不需要任何特殊权限,只需要基本的读取访问权限即可实施攻击。
该漏洞存在于Directus的搜索和过滤功能模块中。当数据库字段被标记为concealed(隐蔽)或sensitive(敏感)时,系统会在API响应中对这些字段的值进行掩码处理(替换为****)。然而,搜索逻辑在执行查询时仍然会使用原始的未掩码值进行比较。具体攻击流程如下:1) 攻击者作为低权限认证用户登录系统;2) 攻击者构造针对敏感字段的搜索查询,使用模糊匹配或精确匹配;3) 当搜索条件与某条记录的敏感字段匹配时,该记录会出现在返回结果中;4) 攻击者通过观察记录是否存在来判断搜索条件是否正确;5) 结合自动化工具,攻击者可以快速枚举出敏感字段的所有可能值或有效值。例如,攻击者可以依次搜索password字段为'admin123'、'password123'等常见值,观察哪些查询返回了记录,从而确定有效密码。由于CVSS向量显示攻击复杂度低(AC:L)且不需要用户交互(UI:N),此漏洞易于被利用。