Descoberta e Escopo da Ameaça
Uma vulnerabilidade crítica na plataforma de notebooks Python marimo, rastreada como CVE-2026-39987, está sendo ativamente explorada por grupos de ameaças para implantar um backdoor alimentado por blockchain em sistemas de desenvolvedores. A falha, que permite execução remota de código sem autenticação, foi identificada como um ponto de entrada perigoso para atores maliciosos que estão utilizando-a para instalar uma nova variante do malware NKAbuse através de um espaço falso no Hugging Face.
O advisory, identificado como GHSA-2679-6mx9-h9xc, foi publicado no GitHub em 8 de abril de 2026. Em apenas 9 horas e 41 minutos, a primeira exploração ativa foi registrada. De 11 a 14 de abril de 2026, atacantes de 11 endereços IP únicos em 10 países lançaram 662 eventos de exploração contra instâncias expostas do marimo. O que começou como varreduras iniciais rapidamente se escalou para uma campanha em larga escala e multi-ator, visando estações de trabalho de desenvolvedores de IA.
Os pesquisadores do Sysdig TRT identificaram e documentaram esses ataques à medida que se desenrolavam, notando quatro padrões distintos de pós-exploração: coleta de credenciais, tentativas de shell reverso, exfiltração de dados baseada em DNS e implantação de uma variante anteriormente não documentada do NKAbuse. A velocidade de weaponização confirmou que múltiplos atores de ameaças estavam mirando independentemente a mesma vulnerabilidade dentro de dias de sua divulgação pública.
Vetor de Ataque e Exploração
O vetor de ataque mais alarmante foi a implantação de um backdoor baseado em Go chamado kagent através de um espaço do Hugging Face com typosquatting chamado vsccode-modetx, construído para imitar uma ferramenta legítima do VS Code. Usando um comando curl simples contra um endpoint do marimo, o atacante puxou e executou um dropper de shell que baixou o binário kagent para o sistema da vítima.
O domínio do Hugging Face não carregava nenhuma bandeira maliciosa em 16 fontes de reputação no momento, permitindo que o payload contornasse os filtros de segurança padrão sem levantar alarmes. O impacto do ataque estendeu-se além de um único notebook comprometido. Os atacantes rapidamente pivotaram da exploração do marimo para acessar bancos de dados PostgreSQL e instâncias Redis conectadas, usando credenciais puxadas de variáveis de ambiente.
Um operador extraiu chaves de acesso AWS, strings de conexão de banco de dados e tokens de API do OpenAI, demonstrando que uma única instância exposta do marimo poderia abrir um ponto de apoio para infraestrutura em nuvem mais ampla.
Análise Técnica Detalhada do Malware
O binário kagent é um arquivo ELF Go despojado e compactado com UPX que se descompacta de 4,3 MB para 15,5 MB e se comunica com um servidor de comando e controle sobre a rede blockchain NKN. Como o protocolo NKN usa nós de retransmissão descentralizados, não há um único endereço IP ou domínio para bloquear, e o tráfego C2 se mistura com a atividade normal da blockchain, tornando a detecção difícil com ferramentas convencionais.
O script dropper estabelece persistência usando três métodos sequenciais: primeiro criando um serviço de usuário systemd em ~/.config/systemd/user/kagent.service, depois adicionando uma entrada crontab @reboot e, finalmente, instalando um LaunchAgent do macOS em ~/Library/LaunchAgents/com.kagent.plist. Toda a saída é silenciosamente redirecionada para ~/.kagent/install.log, escondendo a atividade do monitoramento padrão de processos.
Os defensores devem verificar todas as três localizações para remover completamente o implante. Comparado ao NKAbuse original de dezembro de 2023, esta variante de 2026 visa ferramentas de desenvolvimento de IA usando uma vulnerabilidade totalmente nova, utiliza o Hugging Face para entrega e disfarça o binário como um agente Kubernetes legítimo chamado kagent, onde o original explorou uma falha de seis anos no Apache Struts contra desktops Linux e dispositivos IoT.
Medidas de Mitigação Recomendadas
Os pesquisadores do Sysdig TRT compartilharam os seguintes passos para defensores:
- Atualizar o marimo para a versão 0.23.0 ou posterior imediatamente, pois a vulnerabilidade não requer autenticação e é alvo ativo.
- Caçar o diretório ~/.kagent/, a entrada systemd kagent.service e qualquer processo kagent em execução em sistemas que executaram marimo.
- Bloquear vsccode-modetx.hf.space no nível de proxy ou DNS para interromper a URL de entrega de payload conhecida.
- Rodar todas as credenciais em instâncias expostas do marimo, focando em DATABASE_URL, chaves AWS e tokens de API armazenados em variáveis de ambiente.
- Monitorar o tráfego de rede para padrões de retransmissão de blockchain NKN que indiquem comunicação C2 ativa de um host infectado.
- Auditar Espaços do Hugging Face e dependências de IA/ML, e restringir o acesso apenas a editores verificados.
- Implantar detecção comportamental de tempo de execução, pois ferramentas baseadas em assinatura não podem capturar malware de detecção zero hospedado em plataformas confiáveis.
Implicações para a Cadeia de Suprimentos de IA
Este incidente marca uma evolução significativa nas táticas de ataque contra o ecossistema de desenvolvimento de IA. O uso de plataformas de compartilhamento de código como o Hugging Face para entrega de malware, combinado com a ofuscação através de protocolos blockchain para C2, representa um desafio complexo para as equipes de segurança tradicionais. A capacidade de um único desenvolvedor comprometido de servir como ponto de entrada para infraestrutura em nuvem mais ampla destaca a necessidade de segmentação de rede e monitoramento de comportamento de usuários privilegiados.
Para CISOs e equipes de SOC, a prioridade imediata deve ser a varredura de ambientes de desenvolvimento em busca de instâncias do marimo não atualizadas e a revisão de logs de acesso a espaços do Hugging Face. A implementação de políticas de acesso restrito e a auditoria regular de dependências de software são essenciais para mitigar riscos semelhantes no futuro.
Perguntas Frequentes
Qual é a severidade do CVE-2026-39987?
A vulnerabilidade permite execução remota de código sem autenticação, classificando-a como crítica. A exploração ativa confirmada e o impacto potencial em infraestrutura de nuvem elevam a urgência da correção.
Como identificar se meu sistema foi comprometido?
Verifique a existência do diretório ~/.kagent/, processos kagent em execução e conexões de rede para nós de retransmissão NKN. Revise os logs de sistema em busca de entradas de crontab ou serviços systemd suspeitos.
Devo confiar em ferramentas de assinatura para detectar este malware?
Não. O malware utiliza ofuscação e comunicação baseada em blockchain que se mistura com o tráfego legítimo. A detecção comportamental e a análise de rede são necessárias.