Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
element-vector-drive-letter — Element Desktop v1.12.29 - Alto - Locale - File - vettore: il protocollo legge i file Windows al di fuori della jail asar | Kitploit
Strumenti/GitHubGitHub/abraxas/element-vector-drive-letter
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebVirtualizzazione per la SicurezzaPenetration TestingLab e Pratica
GitHubabraxas/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - Alto - Locale - File - vettore: il protocollo legge i file Windows al di fuori della jail asar

Vedi Repository
4 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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: Lettura di file Portata: Locale

apps/desktop/src/electron-main.ts registra vector: come protocollo file privilegiato. La jail è solo relTarget.startsWith("..") dopo path.normalize(path.join(...pathname.split("/").slice(2))). Su Windows un join di C:, Windows, win.ini è già C:\Windows\win.ini. I percorsi assoluti non iniziano con .., quindi il controllo li lascia passare. Anche la nota di Electron sui protocolli personalizzati rifiuta path.isAbsolute. Il path.join POSIX non considera C: come assoluto, quindi Linux e macOS non sono questo residuo. will-navigate lascia passare vector:.

XSS nel renderer, DevTools o un altro processo locale può eseguire fetch("vector://vector/webapp/C:/Windows/win.ini") e leggere file che il processo Element può aprire.

IDnessuna CVE al momento
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
Prodottoelement-web Desktop (apps/desktop)
Affettov1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Solo Windows.
Authrenderer locale (DevTools / XSS)
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

XSS nel renderer, DevTools o un altro processo locale che può raggiungere vector:. Element Desktop nativo per Windows non è stato eseguito. Il gadget copia il parser URL del pin e usa il path.win32 di Node.

PrivilegioMetodo / sinkRicognizione / integrità / disponibilitàProvato in lab o dedotto
Leggere un file che il processo Element può aprirefetch("vector://vector/webapp/C:/Windows/win.ini"). La jail è solo relTarget.startsWith(".."). Il join con lettera di unità è assoluto, quindi il controllo passa. path.win32.resolve(asar, relTarget) è C:\Windows\win.iniRicognizioneProvato in lab sul gadget del parser URL. Il body è ELEMENT-VECTOR-DRIVE-LETTER-WITNESS. Desktop nativo non eseguito
Stessa lettura di electron-config, profili, file di altri utenti sulla stessa ACLStesso fetch vector://vector/webapp/C:/...RicognizioneDedotto. Il lab ha piazzato win.ini, non segreti reali
ATO Matrix se il frame principale carica HTML dell'attaccante già su discowill-navigate lascia passare vector:. HTML ostile su vector://vector ottiene preload / window.electron (token, Seshat, clearStorage)IntegritàDedotto da webcontents-handler.ts e preload. Il lab non ha navigato un BrowserWindow
Traversal ../ dell'albero asarvector://vector/webapp/../n/aChiuso qui. WHATWG URL lo collassa; l'handler restituisce FILE_NOT_FOUND (-6)
Fetch con lettera di unità su POSIX / macOS / Linuxpath.posix.join lascia C:/Windows/win.ini sotto asarn/aChiuso qui. Gadget posix 404, nessun witness
RCE / LPE a livello OSnodeIntegration: false, app.enableSandbox()n/aChiuso. Non questo residuo

Altri residui dello stesso pin: fragment guest wipe, Univention ICS javascript: href.

Come l'ho trovato

Ho fissato element-hq/element-web v1.12.29 dopo la release GitHub del 22 settembre 2026. Timeline XSS, HTML-export XSS (GHSA-wqmv), homepage HTML (GHSA-wrcp), widget media token (GHSA-3jm3) ed Element Call keys (GHSA-69q3) sono chiusi su questo tag. Il protocollo personalizzato di Desktop controlla ancora solo startsWith("..").

new URL("vector://vector/webapp/C:/Windows/win.ini") mantiene C: come segmento di percorso. path.win32.join("C:", "Windows", "win.ini") è C:\Windows\win.ini. Il path.win32.join(asar, abs) di Node concatena; path.win32.resolve elimina la radice asar.

Vicoli ciechi già registrati: trattare ../ come il residuo (WHATWG lo collassa, l'handler restituisce 404); chiamare il C: POSIX lo stesso bug (il join posix resta sotto asar); gonfiare la lettura di file a RCE a livello OS (sandbox e nodeIntegration: false restano attivi). Una reverse shell. Teatro.

Lab

Gadget del parser URL. path.win32 di Node contro path.posix. Nessun processo Element Desktop per Windows. Il /lab/oracle/win.ini piazzato sostituisce C:\Windows\win.ini. /lab/asar/index.html è la jail asar.

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

oppure

cd lab
./run.sh

Target solo http://127.0.0.1:19610. Progetto Compose element-vector-drive-letter. Lo stack viene smontato dopo l'esecuzione.

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

La correzione

Dopo normalize, rifiutare path.isAbsolute(relTarget) e richiedere che path.resolve(baseDir, relTarget) rimanga sotto path.resolve(baseDir) (path.relative, rifiutare ..).

Riferimenti

  • github.com/element-hq/element-web tag v1.12.29
  • electron-main.ts (registerFileProtocol)
  • webcontents-handler.ts (will-navigate)
  • Vicini corretti (non questa jail): GHSA-wqmv · GHSA-wrcp
  • Stesso pin: element-fragment-guest · element-ics-javascript
  • CWE-22

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento