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
• Microsoft закрыла активно эксплуатируемую уязвимость «нулевого дня» в Office
• Microsoft расследует сбои загрузки Windows 11 после установки январских обновлений
• Microsoft выпустила экстренные обновления для Windows 11 и Windows 10 – второй раз за месяц
• Обновление KB5078132 (Build 22631.6495) для Windows 11, версия 23H2
• Обновление KB5078127 (Build 26100.7628) для Windows 11, версия 24H2
• Обновление KB5078129 (Build 19045.6812) для Windows 10, версия 22H2 (ESU). Исправление проблемы с зависаниями и ошибками приложений
