Incidente · servidor MCP malicioso
A porta dos fundos do postmark-mcp: como um servidor MCP malicioso aparece em um Mac e por que o Kilobat não o teria visto
Em setembro de 2025, um pacote npm não oficial que permitia que assistentes de IA enviassem e-mail pelo Postmark acrescentou uma linha ao código: a partir da versão 1.0.16, cada e-mail enviado incluía uma cópia oculta para um endereço no domínio do próprio publicador. É um caso útil justamente porque o Mac nunca se conectou a nada incomum.
Em resumo
- Protection: Não ajudaria
O Mac só se comunicou com a API do Postmark. As cópias foram entregues pelos servidores de e-mail do Postmark como mensagens comuns.
- Agent guard: Não ajudaria
Nenhum site de colagem, túnel, endereço direto ou grande upload para um novo host. Enviar e-mail por uma API de e-mail era a função da ferramenta.
- Registro de rede de agentes: Limitado
Ele teria listado o servidor MCP no agente que o iniciou, comunicando-se com api.postmarkapp.com, o que é esperado. O destinatário extra fica dentro da requisição criptografada.
O que aconteceu
Os pesquisadores da Koi Security que o descobriram descrevem um pacote npm chamado postmark-mcp, criado a partir do código de um repositório de mesmo nome mantido pela dona do Postmark, a ActiveCampaign, e publicado por outra pessoa. Era um servidor MCP: um pequeno programa que um assistente de IA como Claude Desktop, Cursor ou Claude Code inicia para chamar suas ferramentas, neste caso sendEmail e sendEmailWithTemplate.
As primeiras quinze versões funcionavam conforme anunciado. A versão 1.0.16 adicionou a cada mensagem enviada um campo Bcc com um endereço fixo no domínio giftshop[.]club, copiando redefinições de senha, faturas e qualquer outro conteúdo enviado pelo assistente. A Koi calculou cerca de 1.500 downloads por semana e estimou que milhares de e-mails eram copiados diariamente. Quando a Koi contatou o publicador, o pacote foi excluído do npm, o que não afeta cópias já instaladas.
O Postmark disse que o pacote não era seu, que não havia publicado um servidor MCP no npm e que sua API e seus serviços não foram afetados. A Snyk publicou o código do pacote e a diferença de uma linha entre a versão limpa 1.0.15 e as posteriores.
Linha do tempo
- 15 de set. de 2025
postmark-mcp1.0.0 é publicado no npm (linha do tempo da Snyk). - 15–17 de set. de 2025
Seguem-se várias versões; a 1.0.16 adiciona a cópia oculta, e a 1.0.18 é a última versão registrada.
- Fim de setembro de 2025
O mecanismo de risco da Koi sinaliza a mudança de comportamento; a Koi publica suas descobertas e o pacote desaparece do npm.
- 25 de set. de 2025
O Postmark informa que o pacote não é seu e recomenda trocar credenciais enviadas por e-mail; a Snyk publica sua análise e indicadores.
Como apareceu na rede
No Mac, o servidor MCP é um processo node iniciado pelo assistente, frequentemente por npx. Para enviar um e-mail, ele chamava a API do Postmark em api.postmarkapp.com por HTTPS, usando a própria biblioteca Node do Postmark, exatamente como as versões limpas. O endereço de cópia oculta era mais um campo dentro da requisição criptografada e o tamanho da mensagem quase não mudou.
A cópia seguiu o caminho de qualquer e-mail: os servidores do Postmark a entregaram ao servidor de e-mail de giftshop[.]club. Nenhuma conexão do Mac foi a um destino novo e nenhum padrão de tráfego mudou entre as versões 1.0.15 e 1.0.16.
Indicadores
Conforme documentados pelas fontes. Os domínios aparecem como texto, nunca como links, e são neutralizados ([.]) quando a fonte os neutraliza. A maior parte dessa infraestrutura já deixou de existir: os indicadores ajudam a verificar registros, arquivos e contas antigos, não a bloquear campanhas atuais.
| Indicador | Tipo | Onde aparece | Observação |
|---|---|---|---|
postmark-mcp 1.0.16 and later | Pacote npm | Configurações de clientes MCP, cache do npm | Não é do próprio Postmark. Removido do npm em setembro de 2025, mas cópias instaladas continuam funcionando. |
phan@giftshop[.]club | Endereço de e-mail | Atividade de mensagens do Postmark | O destinatário fixo em cópia oculta. Ele nunca aparece no tráfego de rede do Mac. |
giftshop[.]club | Domínio | Registros de e-mail | A Snyk sugere bloqueá-lo na saída enquanto você verifica; ele recebe e-mails, não conexões do Mac. |
api.postmarkapp.com | Host (legítimo) | Seu Mac | O único host que o servidor MCP acessava, como nas versões limpas. |
O que o Kilobat teria mostrado ou bloqueado
- Registro de rede dos agentes. Servidores MCP iniciados por um agente fazem parte de sua árvore de processos, então a sessão listaria
node, o servidor MCP, conectando-se a api.postmarkapp.com, com os bytes enviados. Isso é o esperado de uma ferramenta de e-mail. Ele seria sinalizado como primeira vez apenas no primeiro dia em que qualquer agente do Mac usasse o Postmark, nunca para o destinatário oculto. - Protection. Nada a bloquear e nada que devesse ser bloqueado. O Postmark é um serviço legítimo e, quando verificamos em 1º de novembro de 2026, giftshop[.]club não estava nas listas de ameaças do Kilobat, o que não faria diferença aqui: o Mac nunca se conecta a ele.
- Agent guard. Nenhuma de suas regras se aplica. O bloqueio de upload vale para mais de 10 MB enviados a um host que nenhum agente usou antes, e requisições de e-mail são pequenas.
Onde o Kilobat não teria ajudado
- O roubo ocorreu dentro de uma requisição permitida a um serviço permitido. Nenhuma ferramenta que monitora conexões no Mac ou na rede pode ver um campo dentro de HTTPS criptografado.
- As cópias foram entregues pelos servidores de e-mail do Postmark, a partir da rede do Postmark, não do Mac.
- O servidor MCP fez exatamente o que o assistente pediu, e mais uma coisa. O assistente também não tinha como ver o destinatário extra.
- O Kilobat nunca lê o que os apps enviam, por decisão de projeto; por isso, não consegue distinguir um e-mail comum de um e-mail copiado.
Verifique seu Mac agora
Liste os servidores MCP que o Claude Code está configurado para iniciar.
claude mcp listProcure o pacote nas configurações MCP dos outros assistentes.
grep -n "postmark-mcp" ~/Library/Application\ Support/Claude/claude_desktop_config.json ~/.cursor/mcp.json ~/.codeium/windsurf/mcp_config.json 2>/dev/nullProcure cópias instaladas globalmente pelo npm ou mantidas em cache para
npx.npm ls -g postmark-mcp; find ~/.npm/_npx -maxdepth 3 -type d -name "postmark-mcp"Se você o usou, remova-o de todas as configurações, troque o token do servidor Postmark ao qual ele tinha acesso e procure, na atividade desse servidor no Postmark, mensagens com uma cópia oculta para giftshop[.]club.
Considere que tudo o que foi enviado por ele foi lido por outra pessoa: altere senhas e revogue links ou tokens que saíram por e-mail. Use os servidores MCP indicados pela documentação oficial de cada serviço.
Com o Kilobat, veja quais hosts cada servidor MCP acessa. Um servidor que acessa hosts sem relação com sua função merece atenção, embora este não tenha feito isso.
kilobat agent-log --all
Perguntas
O Kilobat poderia ter detectado isso?
Não. Todas as conexões eram necessárias para a função da ferramenta. Esse é o tipo de ataque que só uma revisão de código, verificações de reputação do pacote ou os próprios registros do serviço de e-mail podem revelar.
Servidores MCP são mais arriscados que outros pacotes npm?
Eles são executados com todo o acesso que você concede ao assistente, e o assistente os chama muitas vezes sem que uma pessoa confira cada chamada. A Koi mostrou que bastou uma linha alterada.
Fontes
- Koi Security: primeiro MCP malicioso encontrado, a porta dos fundos do Postmark que rouba seus e-mails (cópia arquivada)
- Postmark: informações sobre o pacote malicioso “postmark-mcp”
- Snyk: servidor MCP malicioso no npm, postmark-mcp coleta e-mails
- ActiveCampaign/postmark-mcp: repositório do próprio servidor MCP do Postmark
Verificado em 1º de novembro de 2026.
Veja a que seus agentes e apps se conectam
O Kilobat é um app para a barra de menus do Mac que identifica o app, processo e agente por trás de cada conexão, mantém essas conexões longe de hosts reconhecidamente maliciosos e registra o que cada sessão de agente acessou.
brew install seifip/kilobat/kilobat