IPBUF安全漏洞报告
English
CVE-2026-43941 CVSS 9.6 严重

CVE-2026-43941 Electerm任意代码执行漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-43941
漏洞类型
远程代码执行
CVSS评分
9.6 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
electerm

相关标签

RCEElectermElectronURL处理漏洞终端安全

漏洞概述

electerm是一款开源的终端模拟器及SSH客户端。在3.8.15及更早版本中,该软件存在严重的远程代码执行漏洞。其终端超链接处理机制存在缺陷,未对点击的URL进行协议白名单验证,直接传递给`shell.openExternal`接口。当受害者连接到受控的SSH服务器并点击终端中显示的恶意链接时,攻击者即可利用特定协议在本地系统执行任意代码或读取敏感文件。

技术细节

该漏洞的根本原因在于Electerm未对`shell.openExternal`调用的URL进行有效的协议过滤。`shell.openExternal`是Electron框架提供的强大API,用于使用默认浏览器打开URL,但它同样支持`file://`、`data:`等可能危害系统安全的协议。攻击者可诱导受害者访问恶意SSH服务器,服务器返回包含精心构造的超链接(如指向恶意脚本的`file://`链接或利用系统注册的自定义协议)的终端输出。一旦受害者误点击,Electerm将直接请求操作系统处理该URI,从而绕过了Electron应用本身的安全沙箱限制,导致本地命令执行或敏感文件泄露。尽管攻击需要用户交互(点击),但鉴于SSH使用场景的普遍性,该漏洞极易被利用且后果严重。

攻击链分析

STEP 1
1. 攻击准备
攻击者控制一台恶意SSH服务器或攻陷现有的远程主机。
STEP 2
2. 诱骗连接
诱导受害者使用存在漏洞的Electerm(<=3.8.15)连接到该恶意服务器。
STEP 3
3. 输出恶意载荷
恶意服务器向终端输出包含特制URI链接(如file://协议)的文本,伪装成正常的日志或通知。
STEP 4
4. 用户交互
受害者看到终端中的链接,误以为是系统相关信息并点击了该链接。
STEP 5
5. 触发漏洞
Electerm捕获点击事件,由于缺乏协议验证,直接调用`shell.openExternal`处理该URI。
STEP 6
6. 执行攻击
操作系统处理URI请求,导致本地文件被打开或恶意命令被执行,实现RCE。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import sys # Conceptual PoC for CVE-2026-43941 # This script generates a malicious terminal output hyperlink. # If a user clicks this link in a vulnerable Electerm version, # it will attempt to open the local password file. malicious_url = "file:///etc/passwd" # ANSI escape sequence for hyperlinks in terminal # Format: \033]8;;URL\033\\Text\033]8;;\033\\ payload = f"\033]8;;{malicious_url}\033\\[SYSTEM] Click here to view service logs\033]8;;\033\\" print("Malicious output to be sent to terminal:") print(payload) print("\nIf clicked, Electerm will execute: shell.openExternal('file:///etc/passwd')")

影响范围

electerm <= 3.8.15

防御指南

临时缓解措施
在官方发布修复补丁之前,建议用户不要轻易点击Electerm终端内显示的任何链接,尤其是当连接到不可信的SSH服务器时。可以考虑暂时禁用Electerm的终端超链接渲染功能(如果配置允许),或者改用其他具有严格输入验证的终端替代软件,以降低被攻击的风险。

参考链接