# 漏洞总结:Electron 未验证的 shell.openExternal 导致任意协议执行 ## 漏洞概述 Electron 的终端超链接处理程序会将用户在终端中点击的 URL 直接传递给 `shell.openExternal`,且**未进行任何协议验证**。当用户连接到恶意 SSH 服务器时,攻击者可在终端输出中打印恶意 URI。若受害者点击该链接,系统将使用默认协议处理器执行该链接,从而导致任意协议执行。 ## 影响范围 - **受影响软件**:Electron(所有版本) - **严重程度**:Critical (9.6 / 10) - **CVSS v3 指标**: - 攻击向量:Network - 攻击复杂度:Low - 权限要求:None - 用户交互:Required - 范围:Changed - 机密性、完整性、可用性:High ## 潜在危害 攻击者可利用此漏洞: - 触发危险协议处理器(如 `ms-teams://`、`search-ms://`)进行代码执行 - 打开本地文件或网络共享(`file://`、UNC 路径)以窃取 NTLM 哈希或外泄数据 - 启动与自定义 URI 方案关联的任何已安装应用程序 ## 修复方案 - **官方补丁**:截至 v3.7.9,尚未发布官方补丁。 - **临时缓解措施**: - 不要点击连接到不受信任服务器的终端会话中显示的链接。 - 如果可能,禁用 Electron 终端设置中的超链接渲染。 - 使用终端多路复用器(如 `tmux`)或单独的终端应用程序,在处理不受信任的主机时过滤 URI 方案。 - 考虑在受限环境中运行 Electron(如沙盒、AppArmor、SELinux),以限制协议处理程序的生成。 ## 参考 - [Electron GitHub Repository](https://github.com/electron/electron) - [Electron Security Policy](https://github.com/electron/electron/blob/master/docs/tutorial/security.md) - 漏洞详情最初由外部研究人员报告(确认在 v3.7.9, Win10 上有效)。