跳转到主内容

BrowserView window.open() 漏洞修复

· 阅读时间:约 2 分钟

已发现一个代码漏洞,允许在子窗口中重新启用 Node。


打开一个带有 sandbox: true 或者 nativeWindowOpen: truenodeIntegration: false 这些属性的 BrowserView ,将生成一个 webContents ,里面的window.open 方法可以被调用,同时新打开的子窗口将启用 nodeIntegration。 此漏洞会影响所有受支持的 Electron 版本。

Mitigation

We've published new versions of Electron which include fixes for this vulnerability: 2.0.17, 3.0.15, 3.1.3, 4.0.4, and 5.0.0-beta.2. 我们鼓励所有 Electron 开发者立即更新他们的应用程序到最新稳定版本。

如果由于某些原因,无法升级 Electron 版本,你可以通过禁用所有子网页内容来缓解这个问题:

view.webContents.on('-add-new-contents', (e) => e.preventDefault());

Further Information

此漏洞是由 PalmerAL发现并负责任地报告给Electron项目的。

要了解更多关于维护您的 Electron 应用安全的最佳做法,请参阅我们的 安全教程

If you wish to report a vulnerability in Electron, email security@electronjs.org.