
Element Desktop v1.12.29 - उच्च - स्थानीय - फ़ाइल - वेक्टर: प्रोटोकॉल Windows फ़ाइलों को asar जेल के बाहर पढ़ता है
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · element-vector-drive-letter
Element Desktop v1.12.29 - Element Creations Ltd
Class: फ़ाइल पठन Reach: स्थानीय
apps/desktop/src/electron-main.ts vector: को एक विशेषाधिकार प्राप्त फ़ाइल प्रोटोकॉल के रूप में पंजीकृत करता है। जेल केवल relTarget.startsWith("..") है, path.normalize(path.join(...pathname.split("/").slice(2))) के बाद। Windows पर C:, Windows, win.ini का जोड़ पहले से ही C:\Windows\win.ini है। निरपेक्ष पथ .. से शुरू नहीं होते, इसलिए जाँच उन्हें पार होने देती है। Electron का स्वयं का कस्टम-प्रोटोकॉल नोट भी path.isAbsolute को अस्वीकार करता है। POSIX path.join C: को निरपेक्ष नहीं मानता, इसलिए Linux और macOS इस अवशेष से प्रभावित नहीं हैं। will-navigate vector: को पार होने देता है।
Renderer XSS, DevTools, या कोई अन्य स्थानीय प्रक्रिया fetch("vector://vector/webapp/C:/Windows/win.ini") कर सकती है और वे फ़ाइलें पढ़ सकती है जिन्हें Element प्रक्रिया खोल सकती है।
| ID | अभी तक कोई CVE नहीं |
| CWE | CWE-22 / CWE-73 |
| CVSS | High: 8.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| Product | element-web Desktop (apps/desktop) |
| Affected | v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). केवल Windows. |
| Auth | स्थानीय renderer (DevTools / XSS) |
| License | GNU Affero GPL v3.0 |
| Lab | केवल 127.0.0.1 |
Renderer XSS, DevTools, या कोई अन्य स्थानीय प्रक्रिया जो vector: तक पहुँच सकती है। मूल Windows Element Desktop नहीं चलाया गया। गैजेट पिन के URL पार्सर की नकल करता है और Node path.win32 का उपयोग करता है।
| Privilege | Method / sink | Recon / integrity / availability | Lab-proven or inferred |
|---|---|---|---|
| Element प्रक्रिया द्वारा खोली जा सकने वाली फ़ाइल पढ़ें | fetch("vector://vector/webapp/C:/Windows/win.ini"). जेल केवल relTarget.startsWith("..") है। ड्राइव-लेटर जोड़ निरपेक्ष है, इसलिए जाँच पास हो जाती है। path.win32.resolve(asar, relTarget) C:\Windows\win.ini है | Recon | URL-पार्सर गैजेट पर प्रयोगशाला-प्रमाणित। बॉडी ELEMENT-VECTOR-DRIVE-LETTER-WITNESS है। मूल Desktop नहीं चलाया गया |
electron-config, प्रोफ़ाइल, समान ACL पर अन्य उपयोगकर्ताओं की फ़ाइलों का वही पठन | वही vector://vector/webapp/C:/... fetch | Recon | अनुमानित। प्रयोगशाला में win.ini रखा गया, लाइव रहस्य नहीं |
| Matrix ATO यदि मुख्य फ़्रेम पहले से डिस्क पर मौजूद हमलावर HTML लोड करता है | will-navigate vector: को पार होने देता है। vector://vector पर शत्रुतापूर्ण HTML को preload / window.electron (टोकन, Seshat, clearStorage) मिलता है | Integrity | webcontents-handler.ts और preload से अनुमानित। प्रयोगशाला ने BrowserWindow को नेविगेट नहीं किया |
asar ट्री का ../ ट्रैवर्सल | vector://vector/webapp/../ | n/a | यहाँ बंद। WHATWG URL इसे संकुचित करता है; हैंडलर FILE_NOT_FOUND (-6) लौटाता है |
| POSIX / macOS / Linux ड्राइव-लेटर fetch | path.posix.join C:/Windows/win.ini को asar के अंतर्गत छोड़ देता है | n/a | यहाँ बंद। गैजेट posix 404, कोई witness नहीं |
| OS RCE / LPE | nodeIntegration: false, app.enableSandbox() | n/a | बंद। यह अवशेष नहीं |
समान पिन अवशेष: fragment guest wipe, Univention ICS javascript: href.
मैंने 22 सितंबर 2026 GitHub रिलीज़ के बाद element-hq/element-web v1.12.29 को पिन किया। Timeline XSS, HTML-export XSS (GHSA-wqmv), homepage HTML (GHSA-wrcp), widget media token (GHSA-3jm3), और Element Call keys (GHSA-69q3) इस टैग पर बंद हैं। Desktop कस्टम प्रोटोकॉल अभी भी केवल startsWith("..") की जाँच करता है।
new URL("vector://vector/webapp/C:/Windows/win.ini") C: को पथ खंड के रूप में रखता है। path.win32.join("C:", "Windows", "win.ini") C:\Windows\win.ini है। Node path.win32.join(asar, abs) जोड़ता है; path.win32.resolve asar रूट को हटा देता है।
पहले से दर्ज गलत मोड़: ../ को अवशेष मानना (WHATWG इसे संकुचित करता है, हैंडलर 404 देता है); POSIX C: को वही बग कहना (posix join asar के अंतर्गत रहता है); फ़ाइल पठन को OS RCE तक बढ़ाना (sandbox और nodeIntegration: false चालू रहते हैं)। एक रिवर्स शेल। नाटक।
URL पार्सर का गैजेट। Node path.win32 बनाम path.posix। कोई Windows Element Desktop प्रक्रिया नहीं। रखा गया /lab/oracle/win.ini C:\Windows\win.ini का प्रतिनिधित्व करता है। /lab/asar/index.html asar जेल है।
python3 element-vector-drive-letter-Abraxas-Labs.py
या
cd lab
./run.sh
लक्ष्य केवल http://127.0.0.1:19610। Compose प्रोजेक्ट element-vector-drive-letter। रन के बाद स्टैक टूट जाता है।
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
normalize के बाद, path.isAbsolute(relTarget) को अस्वीकार करें और आवश्यकता रखें कि path.resolve(baseDir, relTarget) path.resolve(baseDir) के अंतर्गत रहे (path.relative, .. से इनकार करें)।
electron-main.ts (registerFileProtocol)webcontents-handler.ts (will-navigate)GNU Affero GPL v3.0। देखें LICENSE। केवल लूपबैक प्रयोगशाला। कोई वारंटी नहीं।