Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
element-vector-drive-letter — Element Desktop v1.12.29 - 高危 - 本地 - 文件 - 向量:协议读取 asar 沙箱外的 Windows 文件 | Kitploit
工具/GitHubGitHub/abraxas/element-vector-drive-letter
漏洞分析漏洞利用Web应用程序漏洞利用安全虚拟化渗透测试实验室与实践
GitHubabraxas/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - 高危 - 本地 - 文件 - 向量:协议读取 asar 沙箱外的 Windows 文件

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
4天前尚未审核
分享

Abraxas Labs - element-vector-drive-letter

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - Element Creations Ltd

类别: 文件读取 影响范围: 本地

apps/desktop/src/electron-main.ts 将 vector: 注册为特权文件协议。其防护仅依赖 path.normalize(path.join(...pathname.split("/").slice(2))) 之后的 relTarget.startsWith("..")。在 Windows 上,将 C:、Windows、win.ini 拼接后已经是 C:\Windows\win.ini。绝对路径不以 .. 开头,因此该检查会放行它们。Electron 自身关于自定义协议的说明也拒绝 path.isAbsolute。POSIX 的 path.join 不将 C: 视为绝对路径,因此 Linux 和 macOS 不存在此遗留问题。will-navigate 允许 vector: 通过。

渲染进程 XSS、DevTools 或另一个本地进程可以 fetch("vector://vector/webapp/C:/Windows/win.ini") 并读取 Element 进程能够打开的文件。

ID暂无 CVE
CWECWE-22 / CWE-73
CVSS高危:8.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
产品element-web Desktop (apps/desktop)
受影响版本v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e)。仅限 Windows。
认证本地渲染进程(DevTools / XSS)
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

渲染进程 XSS、DevTools 或另一个能够访问 vector: 的本地进程。未运行原生 Windows Element Desktop。该利用组件复制了该 pin 的 URL 解析器,并使用 Node 的 path.win32。

权限方法 / 汇聚点侦察 / 完整性 / 可用性实验验证或推断
读取 Element 进程能够打开的文件fetch("vector://vector/webapp/C:/Windows/win.ini")。防护仅为 relTarget.startsWith("..")。盘符拼接后为绝对路径,因此检查通过。path.win32.resolve(asar, relTarget) 为 C:\Windows\win.ini侦察已在 URL 解析器利用组件上实验验证。响应体为 ELEMENT-VECTOR-DRIVE-LETTER-WITNESS。未运行原生 Desktop
在相同 ACL 下同样读取 electron-config、配置文件、其他用户的文件相同的 vector://vector/webapp/C:/... fetch侦察推断。实验环境放置的是 win.ini,而非真实密钥
若主框架加载磁盘上已有的攻击者 HTML,则导致 Matrix ATOwill-navigate 允许 vector: 通过。位于 vector://vector 的恶意 HTML 会获得 preload / window.electron(令牌、Seshat、clearStorage)完整性根据 webcontents-handler.ts 和 preload 推断。实验未导航 BrowserWindow
对 asar 树进行 ../ 遍历vector://vector/webapp/../不适用此处已关闭。WHATWG URL 会折叠它;处理器返回 FILE_NOT_FOUND (-6)
POSIX / macOS / Linux 盘符 fetchpath.posix.join 会将 C:/Windows/win.ini 留在 asar 下不适用此处已关闭。利用组件 posix 返回 404,无见证
操作系统 RCE / LPEnodeIntegration: false、app.enableSandbox()不适用已关闭。非此遗留问题

同一 pin 的其他遗留问题:fragment guest wipe、Univention ICS javascript: href。

我是如何发现的

在 2026 年 9 月 22 日 GitHub 发布后,我锁定了 element-hq/element-web v1.12.29。时间线 XSS、HTML 导出 XSS(GHSA-wqmv)、主页 HTML(GHSA-wrcp)、widget 媒体令牌(GHSA-3jm3)以及 Element Call 密钥(GHSA-69q3)在此 tag 上均已关闭。Desktop 自定义协议仍然只检查 startsWith("..")。

new URL("vector://vector/webapp/C:/Windows/win.ini") 会将 C: 保留为路径段。path.win32.join("C:", "Windows", "win.ini") 为 C:\Windows\win.ini。Node 的 path.win32.join(asar, abs) 会进行拼接;path.win32.resolve 会丢弃 asar 根目录。

已记录的弯路:将 ../ 视为遗留问题(WHATWG 会折叠它,处理器返回 404);将 POSIX 的 C: 称为同一漏洞(posix join 仍留在 asar 下);将文件读取夸大为操作系统 RCE(沙箱和 nodeIntegration: false 仍然开启)。一个反弹 shell。纯属表演。

实验环境

URL 解析器的利用组件。Node 的 path.win32 对比 path.posix。没有 Windows Element Desktop 进程。放置的 /lab/oracle/win.ini 代替 C:\Windows\win.ini。/lab/asar/index.html 是 asar 牢笼。

python3 element-vector-drive-letter-Abraxas-Labs.py

或

cd lab
./run.sh

目标仅限 http://127.0.0.1:19610。Compose 项目 element-vector-drive-letter。运行后技术栈会拆除。

SUCCESS element-vector-drive-letter how=gadget win32-drive-letter=200 posix-drive-letter=404 control-dotdot=404 patched-isabs=404 ELEMENT-VECTOR-DRIVE-LETTER-WITNESS

修复方案

在 normalize 之后,拒绝 path.isAbsolute(relTarget),并要求 path.resolve(baseDir, relTarget) 保持在 path.resolve(baseDir) 之下(使用 path.relative,拒绝 ..)。

参考资料

  • github.com/element-hq/element-web tag v1.12.29
  • electron-main.ts(registerFileProtocol)
  • webcontents-handler.ts(will-navigate)
  • 附近已修补(非此牢笼):GHSA-wqmv · GHSA-wrcp
  • 同一 pin:element-fragment-guest · element-ics-javascript
  • CWE-22

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。无担保。

下载工具