Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
element-vector-drive-letter — Element Desktop v1.12.29 - Élevé - Local - Fichier - vecteur : le protocole lit les fichiers Windows en dehors de la prison asar | Kitploit
Outils/GitHubGitHub/abraxas/element-vector-drive-letter
Analyse des VulnérabilitésExploitationExploitation d'Applications WebVirtualisation de SécuritéTests d'IntrusionLabs et Pratique
GitHubabraxas/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - Élevé - Local - Fichier - vecteur : le protocole lit les fichiers Windows en dehors de la prison asar

Voir le dépôt
il y a 3 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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 : Lecture de fichier Portée : Locale

apps/desktop/src/electron-main.ts enregistre vector: comme protocole de fichier privilégié. La prison se limite à relTarget.startsWith("..") après path.normalize(path.join(...pathname.split("/").slice(2))). Sous Windows, une jointure de C:, Windows, win.ini donne déjà C:\Windows\win.ini. Les chemins absolus ne commencent pas par .., donc la vérification les laisse passer. La propre note d'Electron sur les protocoles personnalisés rejette également path.isAbsolute. Le path.join POSIX ne traite pas C: comme absolu, donc Linux et macOS ne sont pas concernés par ce reliquat. will-navigate laisse passer vector:.

Un XSS dans le renderer, les DevTools, ou un autre processus local peut faire fetch("vector://vector/webapp/C:/Windows/win.ini") et lire les fichiers que le processus Element peut ouvrir.

IDpas encore de CVE
CWECWE-22 / CWE-73
CVSSÉlevé : 8.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
Produitelement-web Desktop (apps/desktop)
Affectév1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Windows uniquement.
Authrenderer local (DevTools / XSS)
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

Ce qu'un attaquant peut faire

Un XSS dans le renderer, les DevTools, ou un autre processus local capable d'atteindre vector:. Element Desktop natif sous Windows n'a pas été exécuté. Le gadget copie le parseur d'URL du pin et utilise le path.win32 de Node.

PrivilègeMéthode / sinkReconnaissance / intégrité / disponibilitéProuvé en lab ou déduit
Lire un fichier que le processus Element peut ouvrirfetch("vector://vector/webapp/C:/Windows/win.ini"). La prison se limite à relTarget.startsWith(".."). La jointure avec lettre de lecteur est absolue, donc la vérification passe. path.win32.resolve(asar, relTarget) donne C:\Windows\win.iniReconnaissanceProuvé en lab sur le gadget du parseur d'URL. Le corps est ELEMENT-VECTOR-DRIVE-LETTER-WITNESS. Desktop natif non exécuté
Même lecture de electron-config, profils, fichiers d'autres utilisateurs sur la même ACLMême fetch vector://vector/webapp/C:/...ReconnaissanceDéduit. Le lab a planté win.ini, pas de secrets réels
ATO Matrix si le frame principal charge du HTML attaquant déjà présent sur le disquewill-navigate laisse passer vector:. Du HTML hostile à vector://vector obtient le preload / window.electron (tokens, Seshat, clearStorage)IntégritéDéduit de webcontents-handler.ts et du preload. Le lab n'a pas navigué de BrowserWindow
Traversée ../ de l'arbre asarvector://vector/webapp/../n/aFermé ici. L'URL WHATWG le réduit ; le handler renvoie FILE_NOT_FOUND (-6)
Fetch avec lettre de lecteur POSIX / macOS / Linuxpath.posix.join laisse C:/Windows/win.ini sous l'asarn/aFermé ici. Gadget posix 404, pas de témoin
RCE OS / LPEnodeIntegration: false, app.enableSandbox()n/aFermé. Pas ce reliquat

Reliquats du même pin : fragment guest wipe, Univention ICS javascript: href.

Comment je l'ai trouvé

J'ai épinglé element-hq/element-web v1.12.29 après la release GitHub du 22 septembre 2026. Le XSS de timeline, le XSS d'export HTML (GHSA-wqmv), le HTML de la page d'accueil (GHSA-wrcp), le token média des widgets (GHSA-3jm3) et les clés Element Call (GHSA-69q3) sont fermés sur ce tag. Le protocole personnalisé Desktop ne vérifie toujours que startsWith("..").

new URL("vector://vector/webapp/C:/Windows/win.ini") conserve C: comme segment de chemin. path.win32.join("C:", "Windows", "win.ini") donne C:\Windows\win.ini. Le path.win32.join(asar, abs) de Node concatène ; path.win32.resolve supprime la racine asar.

Fausses pistes déjà consignées : traiter ../ comme le reliquat (WHATWG le réduit, le handler renvoie 404) ; appeler le C: POSIX le même bug (la jointure posix reste sous l'asar) ; gonfler la lecture de fichier en RCE OS (le sandbox et nodeIntegration: false restent actifs). Un reverse shell. Du théâtre.

Lab

Gadget du parseur d'URL. path.win32 de Node vs path.posix. Pas de processus Element Desktop Windows. Un /lab/oracle/win.ini planté remplace C:\Windows\win.ini. /lab/asar/index.html est la prison asar.

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

ou

cd lab
./run.sh

Cible uniquement http://127.0.0.1:19610. Projet Compose element-vector-drive-letter. La stack est démontée après l'exécution.

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

Le correctif

Après normalize, rejeter path.isAbsolute(relTarget) et exiger que path.resolve(baseDir, relTarget) reste sous path.resolve(baseDir) (path.relative, refuser ..).

Références

  • github.com/element-hq/element-web tag v1.12.29
  • electron-main.ts (registerFileProtocol)
  • webcontents-handler.ts (will-navigate)
  • Correctifs proches (pas cette prison) : GHSA-wqmv · GHSA-wrcp
  • Même pin : element-fragment-guest · element-ics-javascript
  • CWE-22

Licence

GNU Affero GPL v3.0. Voir LICENSE. Lab en loopback uniquement. Aucune garantie.

Télécharger l’outil