Microsoft сообщает, что Windows PowerShell теперь выдаёт предупреждение при запуске скриптов, использующих командлет Invoke-WebRequest для загрузки веб-контента, чтобы предотвратить выполнение потенциально опасного кода.
Как поясняет Microsoft, это устраняет уязвимость PowerShell, связанную с удалённым выполнением кода высокой степени опасности (CVE-2025-54100), которая в первую очередь затрагивает корпоративные или управляемые ИТ-отделом среды, использующие сценарии PowerShell для автоматизации, поскольку сценарии PowerShell не так часто используются за пределами таких сред.
Предупреждение было добавлено в Windows PowerShell 5.1 — версию PowerShell, установленную по умолчанию в системах Windows 10 и Windows 11. Оно предназначено для добавления того же процесса безопасного веб-анализа, который доступен в PowerShell 7.
PowerShell предупредит вас о том, что без принятия мер предосторожности скрипты, содержащиеся на веб-страницах, загруженных с помощью командлета Invoke-WebRequest, могут выполняться в вашей системе. По умолчанию, если вы нажмете Enter или выберете «Нет», операция будет отменена, и PowerShell предложит повторно запустить команду с параметром -UseBasicParsing для более безопасной обработки.
Если вы выберете «Да», PowerShell проанализирует страницу с помощью старого метода (полный HTML-анализ), что позволит содержимому и встроенным скриптам загружаться как раньше. Короче говоря, выбор «Да» означает, что вы принимаете риск, а выбор «Нет» останавливает действие для защиты вашей системы.
«В Windows PowerShell 5.1 теперь отображается запрос на подтверждение безопасности при использовании команды Invoke-WebRequest для получения веб-страниц без специальных параметров», — поясняет Microsoft в сообщении, опубликованном во вторник.
«Это предупреждение о том, что скрипты на странице могут запускаться во время парсинга, и рекомендация использовать более безопасный параметр -UseBasicParsing, чтобы избежать выполнения скриптов. Пользователи должны выбрать, продолжить ли операцию или отменить её.»
После установки обновления KB5074204 (для Windows 11, версии 24H2 и 25H2), обновления KB5074204 (для Windows Server 2025) или KB5074353 (для Windows Server 2022) ИТ-администраторы увидят следующее предупреждение о рисках, связанных с выполнением кода сценария:
Security Warning: Script Execution Risk
Invoke-WebRequest parses the content of the web page. Script code in the web page might be run when the page is parsed.
RECOMMENDED ACTION:
Use the -UseBasicParsing switch to avoid script code execution.
Do you want to continue?
```
For additional details, see [KB5074596: PowerShell 5.1: Preventing script execution from web content](https://support.microsoft.com/help/5072034).
Чтобы сценарии автоматизации не зависали до тех пор, пока их не подтвердят вручную, администраторам рекомендуется обновить сценарии и явно указать безопасный параметр UseBasicParsing.
Важно также отметить, что в PowerShell команда curl является псевдонимом командлета Invoke-WebRequest, поэтому вы также будете видеть эти новые предупреждения при запуске скриптов, вызывающих команды curl.
«Большинство сценариев и команд PowerShell, использующих команду Invoke-WebRequest, продолжат работать практически без изменений», — отметили в Microsoft.
«Например, сценарии, которые только загружают контент или работают с телом ответа как с текстом или данными, не затронуты и не требуют изменений».