CVE-2026-35442Directus是一个开源的实时API和应用仪表板,用于管理SQL数据库内容。在11.17.0版本之前,该系统存在一个严重的安全缺陷。当对配置为“隐藏”特殊类型的字段应用聚合函数(如min或max)时,系统未能正确执行数据掩码,而是错误地返回了数据库中的原始值。如果攻击者将此操作与groupBy查询结合使用,任何拥有受影响集合读取权限的经过身份验证的用户,均可成功提取本应被隐藏的字段内容。这包括但不限于directus_users表中的静态API令牌和双因素认证(2FA)恢复密钥,从而导致严重的信息泄露风险。
该漏洞的根源在于Directus后端对聚合查询与字段访问控制列表(ACL)处理的逻辑冲突。Directus设计了一种“conceal”数据类型,旨在自动屏蔽敏感数据。然而,在构建SQL查询时,当检测到聚合函数(min/max)作用于这些字段时,系统优先执行聚合逻辑,绕过了常规的数据脱敏层。特别是当查询包含groupBy子句时,数据库直接返回了原始字段值进行聚合计算,且API层在输出时未再次进行掩码处理。攻击者只需具备基本的读取权限,即可通过构造特定的API请求(例如/items/users?groupBy[]=id&fields[]=min(token)),诱导服务器返回敏感信息。这种无需提权即可窃取核心凭证(如API Token、2FA Secret)的特性,使得该漏洞极具危险性,极易导致账户接管和系统进一步沦陷。