本文信息来源:alexschapiro
时间线与负责任披露
初次联系: 在 2025 年 10 月 27 日 发现此漏洞后,我立即通过电子邮件联系了 Filevine 的安全团队。
2025 年 11 月 4 日:Filevine 的安全团队对我的报告表示感谢,并确认他们将审查该漏洞并迅速修复。
2025 年 11 月 20 日: 我进行了跟进,在我这一端确认补丁已部署到位,并告知他们我打算撰写一篇技术博客文章。
2025 年 11 月 21 日:Filevine 确认问题已解决,并感谢我负责任地报告了此事。
发布日期:2025 年 12 月 3 日。
Filevine 团队响应迅速、态度专业,并在整个披露过程中认真对待了这一发现。他们承认了问题的严重性,着手修复了漏洞,准许了负责任的披露,并保持了清晰的沟通。这是组织机构在处理安全漏洞披露时的又一个优秀典范。
人工智能法律科技公司的身价正在暴涨,而 Filevine 现在的估值已超过 10 亿美元,是该领域增长最快的平台之一。律师事务所向此类工具输送了海量高度机密的信息。
由于我最近正在与 耶鲁大学法学院合作一个相关项目 ,我决定仔细研究一下 Filevine 如何处理数据安全。我的发现应当引起当今每一位使用 AI 系统的法律专业人士的警惕。
当我第一次浏览该网站想了解它的工作原理时,看起来我必须隶属于一家律师事务所,或者申请正式演示才能真正试用这些工具。不过,我知道公司通常会有开放的演示环境,所以我使用了一种称为“子域名枚举”的技术(我去年第一次是在 Gal Nagli 的文章 中听说这种技术的),来看看是否存在这样的演示环境。结果,我发现了更有意思的东西。
我看到了一个名为 margolis.filevine.com 的子域名。当我访问该站点时,出现了一个一直在加载却从未完成的页面:

我想看看实际上正在加载什么内容,于是打开了 Chrome 的开发者工具,但没有看到任何 Fetch/XHR 请求(通常页面在加载数据时,你会期望看到这类请求)。随后,我决定深入研究一下 Javascript 文件,看看能不能弄清楚原本应该发生什么。我在一个 JS 文件中看到了类似 POST await fetch(${BOX_SERVICE}/recommend) 的代码片段。这勾起了我的兴趣——推荐什么?BOX_SERVICE 又是什?那个变量在调用 fetch 的 JS 文件中并没有定义,但(在翻阅了令人头大的压缩代码后)我在另一个文件中找到了它:“dxxxxxx9.execute-api.us-west-2.amazonaws.com/prod”。现在我有了一个新的端点来测试,只需要弄清楚发送给它的正确载荷(payload)结构即可。在查看了更多压缩后的 JS 代码以确定该端点的正确结构后,我成功构造了一个发往 /prod/recommend 的有效载荷:
{"projectName":"Very sensitive Project"}
(当然,项目名称可以是任何内容)。不需要授权令牌(token),我便收到了如下响应:

起初,我并没有完全理解我所看到的内容有什么影响。无论我传入什么项目名称,系统都会推荐相同的 boxFolders(Box 文件夹),而且我似乎无法访问任何文件。然后,还没意识到自己撞上了大问题,我就把注意力转移到了响应中的 boxToken 上。
在阅读了有关 Box API 的一些文档后,我意识到这是一个具有最大权限且全面覆盖的管理员令牌(Token),可以访问该律师事务所的整个 Box 文件系统(类似于内部共享的 Google Drive)。这涵盖了所有机密文件、日志、用户信息等。当我通过搜索“机密(confidential)”一词并得到近 10 万个结果,从而证实了其潜在影响后——

我立即停止了测试,并负责任地向 Filevine 披露了这一情况。他们反应迅速且专业,并修复了这个问题。
如果有人怀有恶意,他们将能够提取 Margolis 律师使用的每一个文件——这包括无数受 HIPAA(健康保险便利和责任法案) 和其他法律标准保护的数据、内部备忘录/工资单,实际上是该律师事务所拥有的数百万份最敏感的文件。甚至包括受法院命令保护的文件! 这对于律师事务所和那些数据可能被曝光的客户来说,本来可能是一场真正的噩梦。
对于那些因感受到行业压力而急于跟风 AI 热潮的公司——请务必小心! 务必确保那些你将最敏感信息交付给的公司能够切实保护好这些数据。