Microsoft сообщила, что Windows PowerShell теперь отображает предупреждение при запуске скриптов, использующих командлет Invoke-WebRequest для загрузки веб-контента. Цель нововведения — предотвратить выполнение потенциально опасного кода.
По данным Microsoft, данное изменение снижает риск эксплуатации уязвимости удаленного выполнения кода в PowerShell высокой степени опасности (CVE-2025-54100). Наибольшему риску подвержены корпоративные и управляемые ИТ-среды, где PowerShell активно используется для автоматизации. В обычных пользовательских системах такие сценарии применяются значительно реже.
Предупреждение добавлено в Windows PowerShell 5.1 — версию, которая установлена по умолчанию в Windows 10 и Windows 11. Механизм повторяет подход к безопасному парсингу веб-контента, уже доступный в PowerShell 7.
PowerShell теперь уведомляет, что при отсутствии мер предосторожности скрипты, встроенные в веб-страницы, загруженные с помощью Invoke-WebRequest, могут выполниться на локальной системе.
По умолчанию, если пользователь нажимает Enter или выбирает No, операция отменяется. PowerShell предложит повторно выполнить команду с параметром -UseBasicParsing, который обеспечивает более безопасную обработку контента.
Если выбрать Yes (Да), PowerShell применит устаревший способ полного HTML-парсинга, что позволяет загрузить страницу вместе со встроенными скриптами. Иными словами:
- [Y] Да — вы принимаете риск возможного выполнения скриптов;
- [N] Нет — действие отменяется для защиты системы.
В официальном бюллетене Microsoft уточняет:
Windows PowerShell 5.1 теперь показывает запрос подтверждения безопасности при использовании Invoke-WebRequest без специальных параметров.
В запросе предупреждается, что при парсинге страницы могут выполняться скрипты, и рекомендуется использовать параметр -UseBasicParsing для предотвращения выполнения кода. Пользователь должен выбрать продолжить или отменить операцию.
После установки обновления KB5074204 администраторы увидят примерно такое уведомление:
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).
Чтобы автоматизационные сценарии не зависали в ожидании ручного подтверждения, Microsoft рекомендует администраторам заранее обновить свои скрипты и явно добавлять параметр -UseBasicParsing.
В PowerShell команда curl является алиасом для Invoke-WebRequest, поэтому такие же предупреждения будут появляться и при выполнении скриптов, использующих curl.
Microsoft отмечает:
Большинство сценариев и команд PowerShell, использующих Invoke-WebRequest, продолжат работать без изменений или с минимальными корректировками
Скрипты, которые просто загружают данные или обрабатывают тело ответа как текст или бинарного содержимого, не затрагиваются и не требуют модификаций.
Последние статьи #Windows
• Windows PowerShell теперь предупреждает при запуске скриптов с Invoke-WebRequest
• Microsoft подвела итоги 2025 года в сфере ПК-гейминга на Windows 11: развитие портативных консолей, прогресс Arm и обновления DirectX
• Обновление KB5071417 (Build 22631.6345) для Windows 11, версия 23H2
• «Вторник Патчей», декабрь 2025: Microsoft исправила 57 проблем безопасности, включая три уязвимости «нулевого дня»
• Windows 11 Build 28000.1340 (Canary): Обновление KB5072032 для Windows 11, версия 26H1
• Обновление KB5071546 (Build 19045.6691) для Windows 10, версия 22H2 (ESU)
