Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
element-vector-drive-letter — Element Desktop v1.12.29 - High - Local - File - vector: protocol이 asar jail 외부의 Windows 파일을 읽음 | Kitploit
도구/GitHubGitHub/abraxas/element-vector-drive-letter
Vulnerability AnalysisExploitationWeb Application ExploitationSecurity VirtualizationPenetration TestingLabs & Practice
GitHubabraxas/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - High - Local - File - vector: protocol이 asar jail 외부의 Windows 파일을 읽음

저장소 보기
129일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - element-vector-drive-letter

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-vector-drive-letter

분석 문서: https://abraxaslabs.tech/research/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - Element Creations Ltd

분류: 파일 읽기 도달 범위: 로컬

apps/desktop/src/electron-main.ts는 vector:를 권한 있는 파일 프로토콜로 등록합니다. 감옥(jail)은 path.normalize(path.join(...pathname.split("/").slice(2))) 이후의 relTarget.startsWith("..")뿐입니다. Windows에서 C:, Windows, win.ini를 join하면 이미 C:\Windows\win.ini가 됩니다. 절대 경로는 ..로 시작하지 않으므로 이 검사를 통과합니다. Electron 자체의 커스텀 프로토콜 관련 문서에서도 path.isAbsolute를 거부합니다. POSIX의 path.join은 C:를 절대 경로로 취급하지 않으므로 Linux와 macOS는 이 잔재에 해당하지 않습니다. will-navigate는 vector:를 통과시킵니다.

렌더러 XSS, DevTools 또는 다른 로컬 프로세스가 fetch("vector://vector/webapp/C:/Windows/win.ini")를 호출하여 Element 프로세스가 열 수 있는 파일을 읽을 수 있습니다.

ID아직 CVE 없음
CWECWE-22 / CWE-73
CVSSHigh: 8.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
제품element-web Desktop (apps/desktop)
영향 받는 버전v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Windows 전용.
인증로컬 렌더러 (DevTools / XSS)
라이선스GNU Affero GPL v3.0
실습 환경127.0.0.1 전용

공격자가 할 수 있는 일

vector:에 접근할 수 있는 렌더러 XSS, DevTools 또는 다른 로컬 프로세스. 네이티브 Windows Element Desktop은 실행하지 않았습니다. 이 가젯은 해당 취약점의 URL 파서를 복사하고 Node path.win32를 사용합니다.

권한방법 / 싱크정찰 / 무결성 / 가용성실습 환경 입증 또는 추론
Element 프로세스가 열 수 있는 파일 읽기fetch("vector://vector/webapp/C:/Windows/win.ini"). 감옥은 relTarget.startsWith("..")뿐. 드라이브 문자 join은 절대 경로이므로 검사를 통과. path.win32.resolve(asar, relTarget)는 C:\Windows\win.ini정찰URL 파서 가젯에서 실습 환경 입증. 본문은 ELEMENT-VECTOR-DRIVE-LETTER-WITNESS. 네이티브 Desktop은 실행하지 않음
동일 ACL 상의 electron-config, 프로필, 다른 사용자 파일에 대한 동일한 읽기동일한 vector://vector/webapp/C:/... fetch정찰추론. 실습 환경에는 실제 비밀이 아닌 win.ini를 심음
메인 프레임이 디스크에 이미 존재하는 공격자 HTML을 로드할 경우 Matrix ATOwill-navigate가 vector:를 통과시킴. vector://vector의 악성 HTML이 preload / window.electron(토큰, Seshat, clearStorage)을 획득무결성webcontents-handler.ts와 preload로부터 추론. 실습 환경에서는 BrowserWindow를 탐색하지 않음
asar 트리의 ../ 트래버설vector://vector/webapp/../해당 없음여기서는 차단됨. WHATWG URL이 이를 축소하고 핸들러가 FILE_NOT_FOUND (-6)를 반환
POSIX / macOS / Linux 드라이브 문자 fetchpath.posix.join은 C:/Windows/win.ini를 asar 아래에 남김해당 없음여기서는 차단됨. 가젯 posix 404, 증거 없음
OS RCE / LPEnodeIntegration: false, app.enableSandbox()해당 없음차단됨. 이 잔재에 해당하지 않음

같은 핀 잔여물: fragment guest wipe, Univention ICS javascript: href.

발견 경위

2026년 9월 22일 GitHub 릴리스 이후 element-hq/element-web v1.12.29를 핀했다. 타임라인 XSS, HTML 내보내기 XSS(GHSA-wqmv), 홈페이지 HTML(GHSA-wrcp), 위젯 미디어 토큰(GHSA-3jm3), Element Call 키(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로 부풀리기(샌드박스와 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, .. 거부).

참고 자료

  • github.com/element-hq/element-web 태그 v1.12.29
  • electron-main.ts (registerFileProtocol)
  • webcontents-handler.ts (will-navigate)
  • 인접 패치(이 jail 아님): GHSA-wqmv · GHSA-wrcp
  • 동일 핀: element-fragment-guest · element-ics-javascript
  • CWE-22

라이선스

GNU Affero GPL v3.0. LICENSE를 참조하십시오. 루프백 랩 전용. 보증 없음.

도구 다운로드