电子是一个由Node . js, V8和铬构成的开源框架,该框架已被广泛用于流程的桌面应用程序,包括Github桌面,WordPress等;研究员发现通过错误配置,将允许恶意应用程序访问节点。js API和模块并滥用更多操作系统功能。
安全专家发现了电子软件框架中的一个漏洞,该漏洞已被用于构建大量流行的桌面应用程序。流行的桌面应用程序(包括Skype,松弛,GitHub桌面,抽搐,WordPress.com等)可能受到影响。
<>强电子框架是由node . js, V8和铬构成的开源框架强>
电子是一个节点。js、V8和铬开源框架,允许开发人员使用JavaScript、HTML和CSS等网络技术来构建桌面应用程序。在构建基于电子框架的应用程序时,开发人员可以选择电子API或节点。js API及其模块。节点。js API和内置模块为开发人员提供了与操作系统更广泛的集成,并允许访问更多的操作系统功能。
为了防止滥用操作系统功能,电子团队创建了一种机制,可以防止基于其框架的应用程序受到攻击。
“电子应用程序本质上就是网络应用程序,这意味着它们很容易受到跨站点脚本攻击,因为未能正确清理用户提供的输入。默认的电子应用程序不仅包括访问其自己的API,还包括访问所有节点。js的内置模块。”读取网络发布的分析”。这使得XSS特别危险,因为攻击者的有效载荷可以允许执行一些令人讨厌的事情,比如在child_process模块中需要并在客户端执行系统命令。”
<强>选举框架设置webviewTag: false”选项可造成XSS漏洞强>
在桌面上运行HTML和JS代码的应用默认情况下启用了“nodeIntegration:错误的”选项,这意味着默认情况下禁用对节点。js API和模块的访问。
该网页视图标签,功能允许开发嵌入内容,如网页,为电子应用程序并运行它作为一个单独的进程。
通过分析:
使用WebView标签时,您还可以传入许多属性,包括nodeIntegration。WebView容器默认情况下没有启用nodeIntegration。
当webPreferences配置文件中的webviewTag设置为假时,nodeIngration也设置为false,但是,如果开发人员不声明webviewTag,那么电子应用程序会将nodeIntegration设置为假。
研究员丹Scarvell发现可以将nodeIntegration选项设置为“true”,将允许恶意应用程序访问节点。js API和模块并滥用更多操作系统功能。
Scarvell解释说,如果基于电子的应用程序的开发人员没有在webPreferences配置文件中专门设置“webviewTag:错误的”选项,则攻击者可以利用应用程序内部的跨站点脚本(XSS)漏洞创建新的WebView组件窗口来更改设置并将nodeIngration标志设置为“true”。