Il caso del pacchetto postmark-mcp su npm segna un nuovo episodio critico nella sicurezza della supply chain open source. A partire dalla versione 1.0.16, il pacchetto ha introdotto un comportamento malevolo che aggiunge un BCC nascosto a tutte le email inviate, esfiltrandole verso un dominio esterno. Questo pacchetto, pensato come server MCP per consentire agli assistenti AI di interfacciarsi con Postmark, ha così trasformato un componente di fiducia in un canale di raccolta dati non autorizzato. La rimozione del pacchetto dal registro npm e dal repository GitHub è avvenuta solo dopo le prime segnalazioni, lasciando però esposti gli utenti che lo hanno installato o aggiornato tra metà e fine settembre 2025. L’incidente dimostra la fragilità dei flussi software automatizzati e l’importanza di strumenti di analisi per individuare anomalie nelle dipendenze.
Cosa leggere
Cos’è il componente compromesso?
Il componente malevolo è il pacchetto postmark-mcp, pubblicato dall’utente npm “phanpak” e attribuito nel codice a Jabal Torres. Il server MCP si basava sull’SDK ufficiale di Postmark e richiedeva variabili di ambiente sensibili come token server e credenziali email. A partire dalla versione 1.0.16, il file principale index.js ha introdotto la riga che inserisce il BCC verso [email protected], garantendo a un dominio esterno copie di tutte le email processate. La differenza rispetto alle versioni precedenti è proprio l’inserimento di questa backdoor, che ha trasformato il pacchetto da benigno a strumento di esfiltrazione. Oltre al BCC nascosto, il pacchetto manteneva funzionalità complete di invio email, rendendo più difficile rilevare il comportamento anomalo. Dopo la rilevazione, il repository GitHub è stato rimosso, restituendo errore 404, segno di una presa di distanza rapida dall’attività sospetta.
Cronologia dell’incidente
La sequenza degli eventi evidenzia la velocità con cui una dipendenza può diventare pericolosa. Dal 15 settembre 2025 al 17 settembre, il pacchetto ha attraversato varie versioni fino alla 1.0.18, ultima nota su npm. Già con la 1.0.16 era stato inserito il BCC malevolo, confermato da analisi di terze parti. Entro il 25 settembre 2025 il pacchetto risultava rimosso sia dal registro npm sia dal repository GitHub. Questa finestra temporale di poco più di dieci giorni è stata sufficiente per diffondere il componente in diversi progetti e ambienti di automazione basati su AI assistants, aumentando il rischio di esfiltrazione dati. La comunità ha confermato che il backdoor ha agito in modo trasparente, inviando copie delle email senza alcuna notifica visibile agli utenti o agli amministratori di sistema.
Il meccanismo di raccolta email
Il backdoor funzionava tramite l’inserimento automatico di un BCC a [email protected] in ogni messaggio gestito dal server MCP. Ciò significava che ogni email inviata, completa di contenuto, allegati e metadati, veniva duplicata e inoltrata verso un dominio esterno. Il codice validava gli allegati, li scaricava da URL, li convertiva in base64 e li includeva nella trasmissione, permettendo così di intercettare non solo testo ma anche documenti sensibili. Poiché il server MCP operava con ampie autorizzazioni, i dati potevano includere reset di password, fatture, memo interni e informazioni clienti, moltiplicando il rischio di compromissione. La backdoor si attivava in modo silenzioso, rendendo complessa l’individuazione senza un’analisi specifica del traffico o del codice sorgente.
Valutazione dell’impatto
Gli utenti colpiti devono considerare compromessi tutti i dati email transitati attraverso postmark-mcp nelle versioni dalla 1.0.16 in avanti. L’impatto riguarda non solo i messaggi inviati, ma anche gli allegati, i token e i riferimenti a credenziali incluse nelle comunicazioni. L’automazione tipica dei workflow agent-driven amplifica l’esposizione, poiché grandi volumi di email possono essere processati senza controllo umano diretto. Anche se il pacchetto è stato rimosso da npm, le copie installate localmente rimangono operative fino a disinstallazione esplicita. La compromissione, dunque, non termina con la rimozione dallo store ma richiede azioni attive da parte degli amministratori di sistema e degli sviluppatori.
Indicatori di compromissione
Gli IOC identificati includono il pacchetto npm postmark-mcp, le versioni dalla 1.0.16 alla 1.0.18 e il dominio esterno giftshop.club, in particolare l’indirizzo [email protected]. La presenza di traffico in uscita verso tale dominio nei log email è un segnale chiaro di compromissione. Altri indicatori riguardano l’autore npm “phanpak” e gli ulteriori pacchetti da lui pubblicati, che potrebbero rappresentare un rischio futuro. Le organizzazioni devono dunque monitorare con attenzione eventuali dipendenze dallo stesso autore e valutarne la rimozione preventiva.
Guida alla mitigazione immediata
Le azioni raccomandate sono: disinstallare postmark-mcp da tutti gli ambienti, bloccare a livello egress il dominio giftshop.club, ruotare immediatamente le credenziali Postmark e SMTP compromesse, rivedere i log per rilevare traffico sospetto e sostituire qualsiasi token o chiave API esposta nelle email. È inoltre consigliato analizzare i pacchetti pubblicati dallo stesso autore per prevenire ulteriori compromissioni. L’adozione di strumenti di Software Composition Analysis e di scanner specifici come mcp-scan può aiutare a individuare comportamenti anomali nei server MCP e mitigare i rischi futuri. La vicenda evidenzia la necessità di rafforzare i controlli di sicurezza sulle dipendenze npm e di trattare con particolare cautela i pacchetti che operano con ampie autorizzazioni.