PT-2026-42036 · Decolua+2 · 9Router
CVE-2026-46339
·
Publicado
2026-05-19
·
Atualizado
2026-09-12
CVSS v3.1
10
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
9router versões 0.4.30 a 0.4.36
Description
O 9router contém uma falha na qual o middleware do Next.js não protege diversos endpoints de API, permitindo que atacantes adjacentes à rede, não autenticados, executem comandos arbitrários do sistema operacional como o usuário que executa o processo. O problema decorre de uma lista de permissões restrita em
src/proxy.js que deixa os endpoints /api/cli-tools/* e /api/mcp/* desprotegidos. Um atacante pode primeiro usar o endpoint /api/cli-tools/cowork-settings para registrar um plugin malicioso, fornecendo um command e args controlados através da variável customPlugins. Posteriormente, o atacante pode disparar a execução desse comando chamando o endpoint /api/mcp/{plugin}/sse, que invoca a função spawn() usando os parâmetros maliciosos armazenados anteriormente. Isso pode levar ao comprometimento total do servidor, incluindo a exfiltração de chaves de API, credenciais da AWS e possível escape de container para o root do host se o processo possuir permissões do grupo docker.Recommendations
Atualize o 9router para uma versão posterior à 0.4.36.
Estenda o matcher do middleware em
src/proxy.js para incluir /api/cli-tools/:path* e /api/mcp/:path* para impor a autenticação.
Implemente uma lista de permissões de comandos dentro da função registerCustomPlugin() em src/lib/mcp/stdioSseBridge.js para validar a variável command.
Sanitize a entrada de customPlugins na fronteira da API em src/app/api/cli-tools/cowork-settings/route.js, validando o command e sanitizando a variável name.Exploit
Correção
RCE
Missing Authentication
OS Command Injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
9Router