{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiana2m3e7tsxwdfqt2mxmozhyyr2sjubp6kumfngti62mbijrhxxe",
"uri": "at://did:plc:ulfbtqn2ybcgbzf27z75qrvu/app.bsky.feed.post/3mosdv3rc42h2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreih7uipaxkuptedktkqt2stnyzimqm4lakybf7cjswfcvv6n6eg54i"
},
"mimeType": "image/png",
"size": 842981
},
"path": "/seguranca/413535-falha-critica-em-plataforma-python-permite-invasao-remota-sem-credenciais.htm",
"publishedAt": "2026-06-21T12:00:00.000Z",
"site": "https://www.tecmundo.com.br",
"tags": [
"Segurança",
"nossa newsletter",
"canal do YouTube"
],
"textContent": "Uma vulnerabilidade crítica no Marimo permite que um invasor acesse e controle um servidor remoto sem precisar de nenhuma credencial. A falha, registrada como CVE-2026-39987, foi explorada ativamente em menos de dez horas após a divulgação pública, em abril de 2026. Marimo é uma plataforma de notebooks Python usada em projetos de ciência de dados e inteligência artificial. Neste contexto, “notebook” refere-se a um documento interativo executável, que combina blocos de código com textos explicativos, gráficos, equações matemáticas e resultados de análises em uma única página.\n\nO Marimo funciona com um servidor web que permite editar e executar código diretamente pelo navegador. Para facilitar o trabalho colaborativo, muitas instalações ficam acessíveis pela internet. Isso faz com que esses servidores frequentemente estejam ao lado de arquivos sensíveis, como credenciais de serviços em nuvem, bancos de dados e variáveis de ambiente com senhas. Basicamente, quem invade um servidor desse não encontra só o notebook, mas tudo que está instalado na mesma máquina.\n\nA CVE-2026-39987 foi explorada ativamente em menos de dez horas após a divulgação pública, com operações completas de roubo de credenciais executadas em menos de três minutos.\n\n## O que é um WebSocket e onde estava o problema\n\nPara entender a falha, é preciso entender o que é um WebSocket. Isso porque é exatamente esse mecanismo que o Marimo usa para manter a conexão em tempo real entre o navegador do usuário e o servidor.\n\nDiferente de uma requisição web comum, onde o browser pede uma informação e o servidor responde, um WebSocket abre um canal permanente de comunicação nos dois sentidos. É o mesmo tipo de tecnologia que mantém um chat ou um placar esportivo atualizado sem que a página precise ser recarregada.\n\nO Marimo tem vários desses canais abertos. A maioria deles exigia autenticação. O terminal integrado da plataforma, que dá acesso direto à linha de comando do servidor, não exigia.\n\nServidores Marimo expostos à internet frequentemente armazenam credenciais e arquivos sensíveis, ampliando o impacto de uma invasão bem-sucedida.\n\n## Como a invasão funcionava na prática\n\nUm atacante só precisava enviar uma mensagem de abertura de conexão WebSocket para o endereço /terminal/ws no servidor. O servidor aceitava a conexão, alocava um terminal e entregava acesso à linha de comando sem verificar nenhuma credencial.\n\nA partir daí, o invasor podia executar qualquer comando como se fosse o usuário responsável pelo processo. Em instalações padrão com Docker, isso significava acesso como root, o usuário com os maiores privilégios do sistema. Não havia necessidade de phishing, nem de roubo de sessão.\n\nUm único handshake WebSocket, o processo inicial que permite a um cliente e a um servidor trocarem o protocolo HTTP tradicional pela conexão contínua e bidirecional do WebSocket, era suficiente para obter uma sessão interativa no servidor.\n\n## Exploração imediata e campanha ativa\n\nA falha recebeu nota 9,3 de 10 no sistema de pontuação de vulnerabilidades CVSS v4.0 e foi adicionada ao catálogo de vulnerabilidades exploradas ativamente da CISA em 23 de abril de 2026. O prazo federal para correção era 7 de maio.\n\nPesquisadores do Sysdig Threat Research Team registraram a primeira tentativa de exploração 9 horas e 41 minutos após a publicação do aviso de segurança. Uma operação completa de roubo de credenciais foi executada em menos de três minutos.\n\nUma campanha rastreada pelos pesquisadores usa a falha para instalar uma variante do backdoor NKAbuse, que utiliza infraestrutura de comando e controle baseada em blockchain, o que dificulta o monitoramento e bloqueio do tráfego malicioso.\n\nA correção está disponível na versão 0.23.0 do Marimo, que passa a exigir autenticação no terminal WebSocket da plataforma, eliminando o acesso não autorizado.\n\n## Como se proteger\n\nA correção está disponível na versão 0.23.0 do Marimo, que alinha a autenticação do terminal com os demais endpoints da plataforma. A atualização pode ser feita com o comando pip install --upgrade \"marimo>=0.23.0\".\n\nAlém da atualização, recomenda-se não expor o Marimo em modo de edição para redes não confiáveis, evitar associar o serviço a todas as interfaces de rede e verificar se há sinais de comprometimento em servidores que ficaram desatualizados. Qualquer instalação abaixo da versão 0.23.0 deve ser tratada como comprometida até prova em contrário.\n\nAcompanhe o TecMundo nas redes sociais. Inscreva-se em nossa newsletter e canal do YouTube.",
"title": "Falha crítica em plataforma Python permite invasão remota sem credenciais"
}