我们在Granola中发现一键账户接管(及摄像头访问)漏洞
Strix团队在AI笔记应用Granola的Electron桌面应用中发现了一键账户接管漏洞。攻击者可通过恶意通知链接,将受信任窗口导航至攻击者控制的页面,同时保留特权Electron桥接访问权限,从而窃取会话令牌、数据库内容,并可能访问摄像头等本地设备。Granola迅速修复了该漏洞,包括服务器端补丁和后续的绕过修复。
2026年7月5日,安全研究团队Strix披露了AI笔记应用Granola桌面版中的一个严重漏洞,该漏洞允许攻击者通过一次点击即可实现账户完全接管,并可能进一步获取摄像头等本地设备访问权限。
Granola基于Electron框架构建,其安全模型依赖于上下文隔离和仅暴露有限桥接的预加载脚本。然而,Strix的研究表明,当受信任的渲染窗口可以导航到攻击者控制的页面时,原本附加到窗口的特权桥接不会随之移除,从而导致攻击者继承该桥接的完整能力。
漏洞的入口点在于Granola的活动通知功能。攻击者可以将其显示名称设置为指向恶意网站的Markdown链接,然后通过请求访问受害者的私人笔记来触发通知。当受害者在活动提要中点击该显示名称时,受信任的Granola窗口会导航到攻击者的页面,同时window.electron桥接仍然可用。攻击者页面随后可以调用特权IPC通道,例如获取会话令牌、获取刷新令牌、设置令牌以及获取存储的账户信息。更严重的是,当时SQLCipher数据库加密密钥在渲染进程中暴露,攻击者可以轻松绕过数据加密层。
Strix通过其自主黑客代理Strix对Granola应用进行了深度分析,启动了56个代理进行测试。其中一个代理专注于Electron信任边界,并迅速发现了顶层导航防护缺失的问题。Granola的主窗口没有拦截will-navigate和will-redirect事件,这导致受信任窗口可以被导航到任意外部URL。
Granola在收到报告后迅速响应,首先在服务器端修复了原始的通知链接路由,使得用户无需更新桌面应用即可得到保护。随后,Strix发现了一个绕过方法,即使用HTML实体编码的方案冒号仍然能生成可点击链接,Granola于6月26日部署了绕过修复,并邀请Strix进行重新测试。此外,Granola还将SQLCipher密钥移出了渲染进程,彻底解决了数据加密被绕过的问题。
此次发现不仅展示了Electron应用中安全边界的重要性,也为其他Electron开发团队提供了重要警示:必须对所有预加载窗口的顶层导航进行默认拦截,仅允许跳转到受信任的源;内部用户界面中的用户可控内容应被视为不可信输入;应避免通用IPC传递桥接,而是暴露狭窄且明确的API。对于处理敏感数据的桌面应用来说,一个看似微小的导航漏洞可能演变为严重的安全事件。