
T3 Code 61c3794c résidu d'isolation locale. L'aperçu will-attach-webview définit contextIsolation à false et conserve le preload fourni par la page. Labo en boucle locale.
Le volet d'aperçu désactive la cloison entre la page et le preload. will-attach-webview force contextIsolation = false et laisse en place une chaîne preload et webpreferences fournie par la page. Les partitions invalides restent bloquées. L'intégration Node reste désactivée. Le sandbox reste activé. C'est un second coup porté après qu'un renderer a déjà été compromis.
Classe : Résidu d'isolation Portée : Locale (après compromission du renderer)
T3 Code 61c3794c - Ping
| ID | pas encore de CVE |
| Classe | Résidu d'isolation |
| Portée | Locale (renderer principal compromis ou page d'aperçu compromise) |
| CWE | CWE-693 |
| CVSS | Faible : 3.6 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N |
| Produit | T3 Code |
| Affecté | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| Auth | déjà à l'intérieur du renderer de bureau |
| Licence | GNU Affero GPL v3.0 |
| Labo | Couche mock Electron ; le chemin preload est un oracle de chaîne, jamais exécuté |
Nécessite un renderer principal compromis (ou une page d'aperçu capable d'influencer la balise <webview>). Ce gestionnaire seul n'introduit pas Node dans la page.
| Privilège | Méthode / sink | Reconnaissance / intégrité / disponibilité | Prouvé en labo ou déduit |
|---|---|---|---|
Forcer contextIsolation=false sur une webview d'aperçu | DesktopWindow will-attach-webview | Intégrité (isolation désactivée) | Prouvé en labo. handler-invoked=1, contextIsolation=False |
Conserver un chemin preload implanté | même gestionnaire, webPreferences.preload entrant | Intégrité | Prouvé en labo. preload-kept=1, témoin t3f03v2c8 dans le chemin |
Conserver webpreferences implanté | même gestionnaire | Intégrité | Prouvé en labo. webpreferences-kept=1 (nodeIntegration=yes toujours présent ; le booléen nodeIntegration toujours forcé à false) |
| Contrôle négatif : partition invalide | partition hors de persist:t3code-preview- | s.o. | Prouvé en labo. preventDefault |
Reste fermé sur ce résidu
| Axe | Méthode / sink | Pourquoi c'est fermé |
|---|---|---|
| Intégrité | nodeIntegration sur cette webview | le gestionnaire le met à false |
| Intégrité | webview non sandboxée | le gestionnaire met sandbox=true |
| Intégrité | attachement d'une partition non-preview | event.preventDefault() |
| Intégrité | RCE distant non authentifié | nécessite d'abord une compromission du renderer |
PREVIEW_WEBVIEW_PREFERENCES vaut contextIsolation=false,sandbox=true,nodeIntegration=false. L'exigence documentée par Electron pour will-attach-webview est de supprimer preload et webpreferences des attributs fournis par la page.
Le gestionnaire est défini en ligne sur window.webContents.on("will-attach-webview"). J'ai déclenché cet écouteur sur la couche mock DesktopWindow existante avec une partition d'aperçu valide et un chemin preload implanté.
Fausses pistes : considérer l'isolation désactivée comme équivalant à Node dans la page aujourd'hui (le sandbox et nodeIntegration tiennent toujours).
python3 t3code-preview-webview-isolation-Abraxas-Labs.py
ou :
cd lab
./run.sh
IOC handler-invoked=1
IOC contextIsolation=False
IOC sandbox=True
IOC nodeIntegration=False
IOC preload-kept=1
IOC webpreferences-kept=1
IOC preventDefault-invalid-partition=1
SUCCESS T3-F03-WEBVIEW t3f03v2c8
Définir contextIsolation = true (ou supprimer la ligne ; true est la valeur par défaut). delete webPreferences.preload; delete webPreferences.webpreferences; avant de retourner.
61c3794c32b0eeebfac09add43e403618c65d2d7DesktopWindow.ts will-attach-webviewGNU Affero GPL v3.0. Voir LICENSE. Laboratoire en boucle locale uniquement. Aucune garantie.
Abraxas Labs [email protected]
Veuillez créditer le CVE à Abraxas Labs.