CVE-2025-64753grist-core是一款开源的电子表格托管服务器,允许用户在线创建、编辑和协作处理电子表格。在1.7.7之前的版本中存在严重的安全漏洞:系统对文档版本历史访问的权限控制存在缺陷。具体表现为,即使普通用户仅被授予对文档的部分读取权限(如只能访问某些工作表或列),该用户仍可通过特定API端点获取文档的完整版本历史记录,包括所有版本的哈希值以及完整的变更列表。这意味着攻击者可以绕过预期的访问控制策略,获取其本不应该有权限查看的单元格数据、列信息甚至整个数据表的变更历史。该漏洞的CVSS评分为5.3,属于中等严重程度,但由于涉及机密性影响(可获取敏感数据),仍需及时修复。
该漏洞的根本原因在于grist-core对`/compare`端点的权限验证不充分。在正常的访问控制设计中,当用户对某个文档仅拥有部分读取权限时,系统应当过滤掉用户无权访问的数据内容。然而,在受影响版本中,`/compare`端点允许任何拥有文档访问权限的用户请求任意两个版本之间的完整差异信息,而没有验证用户是否对比较结果中涉及的所有数据表、列或单元格具有读取权限。攻击者只需持有文档的部分访问权限(如只读某个特定工作表),即可构造针对`/compare`端点的请求,传入任意两个历史版本的标识符,从而获取包含敏感数据在内的完整变更记录。这包括其他工作表中的数据、其他列的信息等。修复版本1.7.7通过增强权限检查,确保只有拥有文档完整读取权限的用户才能访问`/compare`端点。