Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
element-vector-drive-letter — Element Desktop v1.12.29 - Alto - Local - Arquivo - vetor: protocolo lê arquivos do Windows fora da jaula asar | Kitploit
Ferramentas/GitHubGitHub/abraxas/element-vector-drive-letter
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebVirtualização para SegurançaTestes de PenetraçãoLabs e Prática
GitHubabraxas/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - Alto - Local - Arquivo - vetor: protocolo lê arquivos do Windows fora da jaula asar

Ver Repositório
há 4 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

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

Classe: Leitura de arquivo Alcance: Local

apps/desktop/src/electron-main.ts registra vector: como um protocolo de arquivo privilegiado. A jaula é apenas relTarget.startsWith("..") após path.normalize(path.join(...pathname.split("/").slice(2))). No Windows, um join de C:, Windows, win.ini já é C:\Windows\win.ini. Caminhos absolutos não começam com .., então a verificação os deixa passar. A própria nota de protocolo customizado do Electron também rejeita path.isAbsolute. O path.join do POSIX não trata C: como absoluto, então Linux e macOS não são este resquício. will-navigate permite vector: passar.

XSS no renderer, DevTools ou outro processo local pode fazer fetch("vector://vector/webapp/C:/Windows/win.ini") e ler arquivos que o processo do Element consegue abrir.

IDsem CVE ainda
CWECWE-22 / CWE-73
CVSSAlto: 8.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
Produtoelement-web Desktop (apps/desktop)
Afetadov1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Somente Windows.
Authrenderer local (DevTools / XSS)
LicençaGNU Affero GPL v3.0
Labsomente 127.0.0.1

O que um atacante pode fazer

XSS no renderer, DevTools ou outro processo local que consiga acessar vector:. O Element Desktop nativo do Windows não foi executado. O gadget copia o parser de URL do pin e usa o path.win32 do Node.

PrivilégioMétodo / sinkRecon / integridade / disponibilidadeComprovado em lab ou inferido
Ler um arquivo que o processo do Element consegue abrirfetch("vector://vector/webapp/C:/Windows/win.ini"). A jaula é apenas relTarget.startsWith(".."). O join com letra de unidade é absoluto, então a verificação passa. path.win32.resolve(asar, relTarget) é C:\Windows\win.iniReconComprovado em lab no gadget do parser de URL. O corpo é ELEMENT-VECTOR-DRIVE-LETTER-WITNESS. Desktop nativo não executado
Mesma leitura de electron-config, perfis, arquivos de outros usuários na mesma ACLMesmo fetch vector://vector/webapp/C:/...ReconInferido. O lab plantou win.ini, não segredos reais
ATO do Matrix se o frame principal carregar HTML do atacante já no discowill-navigate deixa vector: passar. HTML hostil em vector://vector recebe preload / window.electron (tokens, Seshat, clearStorage)IntegridadeInferido de webcontents-handler.ts e preload. O lab não navegou um BrowserWindow
Travessia ../ da árvore do asarvector://vector/webapp/../n/aFechado aqui. A URL WHATWG colapsa; o handler retorna FILE_NOT_FOUND (-6)
Fetch com letra de unidade em POSIX / macOS / Linuxpath.posix.join deixa C:/Windows/win.ini sob o asarn/aFechado aqui. Gadget posix 404, sem witness
RCE / LPE no SOnodeIntegration: false, app.enableSandbox()n/aFechado. Não é este resquício

Resquícios do mesmo pin: fragment guest wipe, Univention ICS javascript: href.

Como eu encontrei

Fiz o pin de element-hq/element-web v1.12.29 após o release do GitHub de 22 de setembro de 2026. XSS de timeline, XSS de exportação HTML (GHSA-wqmv), HTML da homepage (GHSA-wrcp), token de mídia de widget (GHSA-3jm3) e chaves do Element Call (GHSA-69q3) estão fechados nesta tag. O protocolo customizado do Desktop ainda só verifica startsWith("..").

new URL("vector://vector/webapp/C:/Windows/win.ini") mantém C: como segmento de caminho. path.win32.join("C:", "Windows", "win.ini") é C:\Windows\win.ini. O path.win32.join(asar, abs) do Node concatena; path.win32.resolve descarta a raiz do asar.

Caminhos errados já registrados: tratar ../ como o resquício (a WHATWG colapsa, o handler dá 404); chamar o C: do POSIX de mesmo bug (o join posix permanece sob o asar); inflar leitura de arquivo para RCE no SO (sandbox e nodeIntegration: false permanecem ativos). Um reverse shell. Teatro.

Lab

Gadget do parser de URL. path.win32 do Node vs path.posix. Sem processo do Element Desktop no Windows. /lab/oracle/win.ini plantado substitui C:\Windows\win.ini. /lab/asar/index.html é a jaula do asar.

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

ou

cd lab
./run.sh

Alvo somente http://127.0.0.1:19610. Projeto Compose element-vector-drive-letter. A stack é desmontada após a execução.

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

A correção

Após normalizar, rejeite path.isAbsolute(relTarget) e exija que path.resolve(baseDir, relTarget) permaneça sob path.resolve(baseDir) (path.relative, recuse ..).

Referências

  • github.com/element-hq/element-web tag v1.12.29
  • electron-main.ts (registerFileProtocol)
  • webcontents-handler.ts (will-navigate)
  • Próximos corrigidos (não esta jaula): GHSA-wqmv · GHSA-wrcp
  • Mesmo pin: element-fragment-guest · element-ics-javascript
  • CWE-22

Licença

GNU Affero GPL v3.0. Veja LICENSE. Somente lab em loopback. Sem garantia.

Baixar ferramenta