En-tête négligent

URGENT : Windows PowerShell 0-Day (CVE-2025-54100) : plongée en profondeur et guide des correctifs critiques

Introduction : Quand le "couteau suisse" vous coupe

Le 9 décembre 2025, le Microsoft Security Response Center (MSRC) a lâché une bombe lors de son "Patch Tuesday" mensuel : un problème critique de sécurité est apparu. Vulnérabilité de 0 jour dans Windows PowerShell, suivi comme CVE-2025-54100.

Avec un Score CVSS de 7.8 (élevé)Cette vulnérabilité affecte une grande partie de l'écosystème Windows, depuis les anciens serveurs jusqu'aux dernières versions de Windows 11. PowerShell étant profondément intégré dans la structure du système d'exploitation, cette faille offre aux attaquants une dangereuse opportunité de "vivre sur place" (LotL), leur permettant d'exécuter un code malveillant à l'aide d'outils système natifs de confiance.

Que vous soyez un administrateur système gérant une ferme de serveurs ou un chercheur en sécurité, ignorer ce correctif n'est pas une option. Ce guide fournit une analyse technique de la faille, la matrice officielle des correctifs et le remaniement de code nécessaire pour que vos scripts fonctionnent en toute sécurité.

Windows PowerShell 0-Day CVE-2025-54100

Plongée technique : Les mécanismes de CVE-2025-54100

Pour comprendre la gravité de ce problème, nous devons examiner la faiblesse sous-jacente : CWE-77 (neutralisation inappropriée d'éléments spéciaux utilisés dans un commandement).

La logique de la vulnérabilité

Le problème principal réside dans la manière dont Windows PowerShell assainit les entrées des utilisateurs avant de les transmettre à l'interpréteur de ligne de commande. Lorsqu'une application ou un script construit une commande PowerShell en utilisant des données non fiables sans filtrage approprié, cela ouvre la porte aux attaques suivantes Injection de commande.

Scénario d'attaque (preuve de concept)

Clause de non-responsabilité : Le code suivant est uniquement destiné à des fins éducatives.

Imaginez un script administratif légitime conçu pour lire les fichiers journaux en fonction des entrées de l'utilisateur :

PowerShell

`# VULNERABLE PATTERN $UserInput = Read-Host "Enter log fileename" (Entrez le nom du fichier journal)

Windows PowerShell 0-Day CVE-2025-54100 PoC

L'entrée est directement concaténée dans la chaîne de commande

Invoke-Expression "Get-Content C:\Logs\$UserInput"`

Dans un scénario standard, un utilisateur entre dans app.log.

Cependant, si un attaquant exploite CVE-2025-54100 sur un système non corrigé, il peut entrer :

app.log ; Démarrer-Processus calc.exe

L'analyseur syntaxique n'a pas réussi à neutraliser le point-virgule (;), l'interprète comme deux commandes distinctes :

  1. Lire le journal : Get-Content C:\NLogs\Napp.log
  2. Exécuter la charge utile : Démarrer le processus calc.exe (Dans une attaque réelle, il s'agirait d'un téléchargeur de ransomware ou d'une balise C2).

Le vecteur d'attaque : "Local" mais mortel

Microsoft considère qu'il s'agit d'un vecteur d'attaque "local". Cela signifie qu'un attaquant a généralement besoin de :

  • Accès de bas niveau au système, OU
  • Convaincre un utilisateur d'exécuter un fichier malveillant (ingénierie sociale/hameçonnage).

Une fois qu'ils ont réussi, ils peuvent tirer parti de cette injection pour augmenter leurs privilèges ou se déplacer latéralement sur le réseau.

Windows PowerShell 0-Day CVE-2025-54100 PoC

La matrice des correctifs : Identifiez vos mises à jour critiques

Microsoft a publié des mises à jour de sécurité d'urgence. Les administrateurs informatiques doivent donner la priorité aux KB suivantes immédiatement via WSUS, SCCM, ou par téléchargement manuel.

Version OSSévéritéID du correctif KB critiqueNotes sur le déploiement
Serveur Windows 2025HautKB5072033Requiert un redémarrage
Windows 11 (24H2 / 25H2)HautKB5074204Mise à jour cumulative
Serveur Windows 2022HautKB5074204Installation prioritaire
Windows Server 2019HautKB5074353
Windows 10 (22H2)HautKB5071546Mise à jour de sécurité disponible
Windows Server 2012 R2MoyenKB5071544ESU (Extended Support) uniquement

Avertissement critique : Étant donné que ce correctif modifie les binaires de base de PowerShell, un redémarrage du système est obligatoire. Veillez à planifier les fenêtres de maintenance en conséquence pour éviter les interruptions de service.

Le "Gotcha" : Réparer les scripts cassés après l'application d'un correctif

La sécurité se fait généralement au détriment de la commodité. Les mises à jour pour CVE-2025-54100 (spécifiquement à l'intérieur de KB5074204 et KB5074353) introduisent des contrôles de sécurité plus stricts sur les requêtes web.

Le problème : Invoke-WebRequest Défaillances

Après l'application du correctif, vous pouvez constater que vos scripts d'automatisation échouent avec l'erreur suivante :

"Le contenu de la réponse ne peut pas être analysé car le moteur Internet Explorer n'est pas disponible ou la configuration du premier lancement d'Internet Explorer n'est pas complète".

Cela s'explique par le fait que Microsoft rompt enfin le lien entre PowerShell et l'ancien moteur d'analyse d'Internet Explorer afin de réduire la surface d'attaque.

La solution : Refonte du code

Vous devez mettre à jour vos scripts pour ne plus dépendre d'IE pour l'analyse du DOM. La solution consiste à forcer l'utilisation de l'élément L'analyse syntaxique de base mode.

Le code brisé (héritage)

PowerShell

# Ceci repose sur le moteur IE, qui est maintenant restreint ou supprimé $response = Invoke-WebRequest -Uri "" Écriture-sortie $response.Content

Le code sécurisé (meilleure pratique)

PowerShell

# Ajoute l'option -UseBasicParsing pour plus de rapidité, de sécurité et de compatibilité $response = Invoke-WebRequest -Uri "" -UseBasicParsing Write-Output $response.Content

Conseil pour les administrateurs :

Utilisez une recherche par expressions rationnelles dans votre IDE (VS Code / ISE) pour analyser votre dépôt de scripts :

  • Trouver : Invoke-WebRequest\s+( ?!.*-UseBasicParsing)
  • Action : Ajouter UseBasicParsing à ces instances.

Défense en profondeur : Au-delà du patch

Les correctifs sont réactifs. Pour se prémunir contre les futurs 0-days, il faut adopter une stratégie de "défense en profondeur" pour PowerShell.

A. Appliquer le mode linguistique contraint

Pour les utilisateurs non administrateurs, PowerShell doit être exécuté dans le dossier Mode linguistique contraint. Cela limite considérablement la possibilité d'appeler les API Windows ou de compiler un code .NET arbitraire.

PowerShell

`# Vérifiez votre mode actuel $ExecutionContext.SessionState.LanguageMode

Sortie cible pour les utilisateurs standard : ConstrainedLanguage`

B. Activer l'enregistrement des blocs de script

Les attaquants adorent PowerShell parce qu'il s'exécute en mémoire (sans fichier). Pour les arrêter, vous devez enregistrer le code exécuté.

  • Chemin d'accès au GPO : Configuration de l'ordinateur > Modèles d'administration > Composants Windows > Windows PowerShell > Activer la journalisation du blocage des scripts PowerShell.

C. Règles de détection SIEM

Mettez à jour les règles de surveillance de votre SOC pour signaler les tentatives d'exploitation potentielles :

  • Hiérarchie des processus : Alerte si powershell.exe est née des applications Office (Word, Excel).
  • Arguments suspects : Recherchez les commandes fortement obscurcies ou l'utilisation de Commande codée.
  • ID d'événement 4104 : Recherchez dans les journaux des blocs de scripts des mots-clés tels que Invoke-Expression ou IEX combinés à des appels de réseau.

Conclusion

La divulgation de CVE-2025-54100 nous le rappelle brutalement : L'identité et la configuration constituent le nouveau périmètre. Si la solution immédiate consiste à appliquer les KB de décembre (KB5072033/KB5074204), la solution à long terme consiste à renforcer votre environnement contre l'utilisation abusive d'outils natifs.

Votre plan d'action :

  1. Audit : Recherchez sur votre réseau les terminaux Windows non corrigés.
  2. Rustine : Déployez immédiatement les mises à jour de sécurité de décembre.
  3. Refactoriser : Mettez à jour vos scripts d'automatisation pour utiliser UseBasicParsing.

Restez en sécurité et protégez vos coquilles.

Partager l'article :
Articles connexes
fr_FRFrench