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
129 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

Write-up: https://abraxaslabs.tech/research/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 sandbox è 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 interessati da questa svista. will-navigate consente il passaggio di vector:.

XSS nel renderer, DevTools o un altro processo locale possono eseguire fetch("vector://vector/webapp/C:/Windows/win.ini") e leggere i 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 in grado di raggiungere vector:. Element Desktop nativo per Windows non è stato eseguito. Il gadget copia il parser URL del pin e usa path.win32 di Node.

PrivilegioMetodo / sinkRicognizione / integrità / disponibilitàDimostrato in lab o dedotto
Leggere un file che il processo Element può aprirefetch("vector://vector/webapp/C:/Windows/win.ini"). La sandbox è solo relTarget.startsWith(".."). Il join con la lettera di unità è assoluto, quindi il controllo passa. path.win32.resolve(asar, relTarget) è C:\Windows\win.iniRicognizioneDimostrato 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 sullo stesso ACLStesso fetch vector://vector/webapp/C:/...RicognizioneDedotto. Il lab ha piazzato win.ini, non segreti reali
ATO di Matrix se il frame principale carica HTML dell'attaccante già presente su discowill-navigate consente il passaggio di vector:. HTML ostile su vector://vector ottiene preload / window.electron (token, Seshat, clearStorage)IntegritàDedotto da webcontents-handler.ts e dal preload. Il lab non ha navigato una BrowserWindow
Traversal ../ dell'albero asarvector://vector/webapp/../n/dChiuso qui. L'URL WHATWG 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/dChiuso qui. Gadget posix 404, nessun witness
RCE / LPE a livello OSnodeIntegration: false, app.enableSandbox()n/dChiuso. Non è questa svista

Stessi residui del 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 set 2026. Timeline XSS, HTML-export XSS (GHSA-wqmv), homepage HTML (GHSA-wrcp), widget media token (GHSA-3jm3) e 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. Node path.win32.join(asar, abs) concatena; path.win32.resolve scarta la radice asar.

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

Lab

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

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

o

cd lab
./run.sh

Prendi di mira solo http://127.0.0.1:19610. Componi il progetto 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 la normalizzazione, 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)
  • Correlati 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 laboratorio su loopback. Nessuna garanzia.

Scarica lo strumento