最新公布的一个漏洞可以让用户绕开热门跨平台开发框架 Electron 的安全检查。由 Trustwave 发布的这个漏洞已得到修补,而开发者应当尽快升级他们的应用。
在开启 nodeIntegration 的情况下,这个漏洞允许在某些应用中的跨站脚本执行。nodeIntegration 方法让应用不仅可以连接自己的模块,还可以连接 Node.js 模块。
以下是 相关公告 :
Electron 应用从本质上来看是网页应用,这意味着它们可能无法正确处理用户提供的输入,从而受到跨站脚本攻击的影响。默认的 Electron 应用不仅可以访问自己的 API(应用程序接口),还可以访问模块中所有 Node.js 构建。这使得 XSS 尤其危险,因为攻击负载可以被允许做一些不当的事情,例如在子进程模块中发起请求,以及在客户侧执行系统命令。不久之前 Atom 也存在 XSS 漏洞,能实现同样的功能。你可以在应用的网页选项设置中将 modeIntegration 设置为 false,从而移除对 Node.js 的访问。
许多热门应用都使用 Electron,包括 Discord、Signal、Visual Studio Code 和 Github。Slack 也在应用中使用 Electron。
这个漏洞依赖于 nodeIntegration 设置,以及打开新窗口的进程。尽管在大部分情况下,nodeIntegration 都是被设置为 false 的,但在某些情况下会设置为 true,从而传递有问题的脚本,包括调用 子进程模块 ,实现派生等系统调用,从而在操作系统中执行指令。
你可以在 这里 查看 Electron 的网站。这里是他们关于此次升级的 博文 。只要你在过去几周中升级过平台,那么大部分应用都不会受到影响。