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 파일을 읽음

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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

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

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
CVSS높음: 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/../n/a여기서는 닫힘. WHATWG URL이 이를 축약하고 핸들러는 FILE_NOT_FOUND (-6)를 반환
POSIX / macOS / Linux 드라이브 문자 fetchpath.posix.join은 C:/Windows/win.ini를 asar 아래에 둡니다n/a여기서는 닫힘. 가젯 posix 404, 증거 없음
OS RCE / LPEnodeIntegration: false, app.enableSandbox()n/a닫힘. 이 잔재가 아님

동일 핀의 잔재: 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)
  • 인접 패치됨 (이 감옥은 아님): GHSA-wqmv · GHSA-wrcp
  • 동일 핀: element-fragment-guest · element-ics-javascript
  • CWE-22

라이선스

GNU Affero GPL v3.0. LICENSE 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드