Con gli aggiornamenti KB5072033 e KB5071417 su Windows 11 e KB5071546 sul 10 in versione ESU, Microsoft ha modificato il comportamento di PowerShell 5.1 introducendo un nuovo controllo di sicurezza. In particolare, quando uno script utilizza il comando Invoke-WebRequest senza parametri aggiuntivi, il sistema mostra un messaggio di avviso che richiede una conferma manuale prima di procedere. Tale scelta nasce dall’esigenza di mitigare una vulnerabilità di tipo Remote Code Execution, identificata come CVE-2025-54100, che sfrutta il modo in cui PowerShell5.1 analizza il contenuto HTML delle pagine scaricate.
Il problema risiede proprio nel parsing avanzato del codice HTML, che può portare all’esecuzione involontaria di script presenti nella pagina. In un contesto interattivo l’utente può accorgersene e intervenire, ma negli ambienti aziendali molti script vengono eseguiti in modo automatico e non presidiato. In questi casi, la comparsa del prompt blocca l’operazione in attesa di un input che non arriverà mai, con effetti immediati su deployment, provisioning, attività di monitoraggio e manutenzione programmata. A rendere la situazione ancora più delicata c’è il fatto che PowerShell 7 non presenta questo comportamento, creando una differenza tra versioni ancora molto diffuse.
Windows: come evitare i blocchi
Microsoft ha indicato una soluzione chiara per evitare l’interruzione degli script, consigliando l’uso del parametro -UseBasicParsing. Questo switch disabilita il parsing avanzato del contenuto HTML e tratta la risposta come semplice testo, eliminando alla radice il rischio legato alla vulnerabilità. In molti casi, per gli script che si limitano a scaricare file o leggere dati testuali, l’aggiunta di questo parametro è sufficiente per ripristinare il comportamento precedente senza effetti collaterali.
È però importante considerare che il cambiamento non riguarda solo Invoke-WebRequest in modo diretto. Su Windows, infatti, anche il comando curl è un alias dello stesso strumento, e quindi eredita il nuovo comportamento. Script che apparentemente non usano PowerShell in modo esplicito possono quindi ritrovarsi bloccati dopo l’installazione degli aggiornamenti. Questo costringe amministratori e responsabili IT a rivedere codice spesso scritto anni fa, per individuare comandi non parametrizzati e adattarli alle nuove regole.
L’episodio mette in luce quanto l’equilibrio tra sicurezza e continuità operativa sia fragile. Un intervento necessario per ridurre i rischi può trasformarsi in un ostacolo concreto per chi fa affidamento sull’automazione quotidiana. E ricorda che, nel mondo dei sistemi, anche una modifica apparentemente minima può fermare tutto.
