Um pacote chamado refbase-mcp, nomeado para se encaixar na convenção do Model Context Protocol que hoje é usada por ferramentas de agentes, foi publicado no npm com malware, registrou 298 downloads e foi removido e substituído por um stub de segurança cerca de uma hora e meia depois.

A linha do tempo, a partir do próprio registro

A versão 1.0.0 entrou no ar às 20:23:38 UTC de 31 de julho. Às 21:54:59 UTC, foi substituída pela versão 0.0.1-security, o placeholder de retenção de segurança de 428 bytes do npm. Esse é um intervalo de exposição de 92 minutos. O aviso veio em seguida, às 22:00:13 UTC. Os três horários vêm das APIs do registro e do aviso, e não de qualquer reportagem.

O que o nome estava fazendo

O sufixo -mcp é a isca. Cadeias de ferramentas de agentes instalam servidores MCP com a mesma confiança que atribuem a qualquer outra dependência, e a convenção já está consolidada o suficiente para valer a pena ser falsificada. Nada nos registros estabelece que o pacote realmente funcionasse como um servidor MCP — o sufixo é uma escolha de nome, não uma capacidade.

A frase assustadora é um modelo

O aviso diz que qualquer máquina com o pacote instalado "should be considered fully compromised" e que todos os segredos e chaves devem ser rotacionados. Isso é o texto-padrão genérico de malware do npm, aplicado a toda remoção dessa classe. Nenhuma análise do payload foi publicada, então o que o pacote realmente fez não está nos registros — e tratar o texto-padrão como um achado sobre este pacote seria um erro.

298 downloads não são 298 vítimas

A curva — 254 em 31 de julho, 44 em 1º de agosto, zero em todos os dias anteriores — é o que um pacote recém-criado costuma parecer quando espelhos do registro, scanners de segurança e caches de CI o encontram. Tratar a contagem como número de infecções exagera bastante o quadro. A leitura mais restrita é a útil: o ciclo de remoção se fechou em 92 minutos, e 92 minutos bastam para alcançar um sistema de build.