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-39987_POC — Proof-of-concept de exploit para CVE-2026-39987, um RCE de pré-autenticação no endpoint WebSocket /terminal/ws do Marimo que fornece um shell interativo sem credenciais. | Kitploit
Ferramentas/GitHubGitHub/julichaan/cve-2026-39987_poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAutenticaçãoFerramenta de Acesso Remoto
GitHubjulichaan/cve-2026-39987_poc

CVE-2026-39987_POC

Proof-of-concept de exploit para CVE-2026-39987, um RCE de pré-autenticação no endpoint WebSocket /terminal/ws do Marimo que fornece um shell interativo sem credenciais.

Ver Repositório
há 10h 18mAinda 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

PoC — CVE-2026-39987 · Marimo Pre-Auth RCE

CVSS 4.0: 9.3 (Crítico) · AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H Afeta: marimo <= 0.20.4 · Corrigido: 0.23.0 · CWE-306 (Autenticação Ausente) Advisory: GHSA-2679-6mx9-h9xc · Correção: marimo-team/marimo@c24d480

Causa raiz

O endpoint WebSocket /terminal/ws (marimo/_server/api/endpoints/terminal.py) apenas verifica o modo da sessão (EDIT) e o suporte da plataforma antes de aceitar a conexão e chamar pty.fork(). Ele não possui nem o decorador @requires(...) nem uma chamada a validate_auth().

Comparação medida na 0.20.4:

  • 73 usos de @requires(...) em 18 endpoints.
  • /ws (notebook) -> 2 chamadas a .
validate_auth()
  • terminal.py -> 0 @requires, 0 validate_auth. <-- a falha.
  • O middleware AuthBackend protege o HTTP e o websocket /ws, mas /terminal/ws aceita a conexão sem cookie e sem token e cria um shell PTY com os privilégios do processo marimo.

    Requisitos de exploração

    • marimo iniciado em modo EDIT (marimo edit ...), que é o modo padrão do editor.
    • Uma plataforma com suporte a pty (Linux/macOS; Windows e Pyodide não são afetados).
    • Acesso de rede à porta. Nenhuma credencial necessária.

    Cenário de ataque

    Um atacante que consiga alcançar um servidor marimo edit pela rede (comum em implantações remotas / em contêineres, frequentemente executadas como root) obtém um shell interativo sem se autenticar: roubo de credenciais (cat .env), movimento lateral, implantação de malware. Explorado em ambiente real < 10 h após a divulgação; adicionado ao catálogo KEV da CISA em 2026-04-23.

    Uso do PoC

    root@kitploit:~
    pip install "marimo==0.20.4" websockets
    marimo edit demo.py --headless --port 2718 --token --token-password SECRET
    python exploit.py ws://127.0.0.1:2718 "id; cat /etc/passwd"
    

    exploit.py não envia token, cookie nem cabeçalho Authorization. Ele envia o comando como texto bruto + "\r" (Enter), exatamente como um usuário o digitaria no terminal.

    Resultado obtido no laboratório (Kali, marimo 0.20.4)

    • Linha de base SEM token: HTTP -> 401 ; /ws -> 403 (a autenticação FUNCIONA).
    • /terminal/ws SEM token -> ACEITO. Executado no servidor: uid=1000() gid=1000() ... Linux ... e escreveu /tmp/cve_2026_39987_proof.txt -> RCE confirmado.

    Remediação

    Atualize para marimo >= 0.23.0. Mitigação temporária: não exponha marimo edit a redes não confiáveis; coloque o editor atrás de um proxy autenticado; execute-o sem privilégios / em um contêiner sem segredos.

    Aviso legal

    Apenas para testes de segurança autorizados e uso educacional. Execute-o somente contra sistemas que você possui ou tem permissão explícita para testar.

    Baixar ferramenta