Ricevi DeafLetter
Una selezione settimanale di segnali, vulnerabilità e guide. Gli avvisi critici restano facoltativi.
Puoi cancellarti in ogni momento. Privacy policy.
Il primo ottobre 2026, un developer digita npm install function-flag e ottiene un pacchetto che Checkmarx ha classificato malevolo quattordici mesi prima. Nessun advisory lo segnala. Lo stesso vale per function-color e cdn-img-fetch: tre nomi da libreria utility, tre cariche ancora attive nel registro pubblico.
La campagna MALFEX ha accumulato oltre 40.000 download dal 2023 attraverso otto pacchetti malevoli. Il volume più concentrato — oltre 37.000 — appartiene a function-flag, installabile senza alcun warning di sicurezza dal luglio 2025. Checkmarx e CloudSEK concordano sui dati strutturali, ma nessuna fonte è un advisory ufficiale del registro npm.
- Otto pacchetti MALFEX: oltre 40.000 download totali; tre ancora installabili al primo ottobre 2026.
- function-flag: oltre 37.000 download dal luglio 2025, zero advisory di sicurezza, quattordici mesi di silenzio.
- Tre percorsi di delivery indipendenti: Overlord RAT, stealer Node.js movinlike, downloader version-specifico.
- Il resolver C2 Solana risulta attivo nella build Overlord, a differenza di campagne precedenti dove era disabilitato.
- Il payload si attiva su Windows tramite lifecycle hooks postinstall; fallisce silenziosamente su macOS e Linux.
I tre pacchetti fantasma
Checkmarx, via SecurityWeek, ha tracciato dodici pacchetti pubblicati dall'agosto 2023: otto malevoli, cinque rimossi, sei con advisory OSV. Il resto è il vuoto. function-flag, function-color e cdn-img-fetch resistono nel registro senza flag di sicurezza.
function-flag è il caso limite. Checkmarx lo segnala "malevolo dal luglio 2025, con più di 37.000 download, e nessun advisory lo segnala come malevolo". CloudSEK aggiunge la misura del tempo: quattordici mesi. Per cdn-img-fetch, la copertura è parziale: le advisory OSV emesse da Amazon Inspector tra il 22 e il 28 settembre 2026 coprono due delle quattro iterazioni malevole.
L'infezione si attiva durante npm install, sfruttando i lifecycle hooks postinstall. Su macOS e Linux la routine fallisce silenziosamente: il payload è Windows-only. Checkmarx non rileva dipendenze da pacchetti legittimi né targetizzazione geografica o organizzativa.
Da IExpress a Solana C2
CloudSEK ha documentato tre percorsi di delivery senza infrastruttura condivisa. Il primo impiega un PE Windows mascherato come image/png, estratto tramite cabinet IExpress con interprete AutoIt3 firmato. Lo script cifrato genera la build overlord-client, un RAT con screen capture, keylogging, monitoraggio finestre, remote shell, ricerca file e hidden desktop.
La novità tecnica è nel comando e controllo. CloudSEK rileva che "il resolver C2 Solana-memo che Jamf aveva descritto come 'presente ma disabilitato' è cablato come stringhe letterali attive", fornendo "il primo campione osservato in cui il meccanismo è effettivamente disponibile". La blockchain Solana funge da resolver del server C2.
Il secondo percorso recupera un PNG poliglotta da raw.githubusercontent.com, lo decifra con la chiave hardcoded malfexteam2027, e scarica il bundle Node.js movinlike (64 MB) da 104.234.65.75:700. Il stealer inietta in otto client Discord, raccoglie dati da sette browser e dai wallet di criptovalute, ed esfiltra verso un webhook Discord che CloudSEK ha trovato attivo al momento della stesura del report.
Il terzo percorso, esclusivo di function-flag, varia il downloader in ogni versione per recuperare payload da location diverse.
L'operatore e i suoi alias
L'operatore si identifica come malfexteam2027. La stringa compare come costante di derivazione chiave e nel README di function-flag@1.7.3. L'account GitHub cavecrew (display name muriel) utilizza l'email corpmalfex@gmail.com. Il repository pubblico ospita le due tecniche principali: credential stealer Windows e proof-of-concept di process hollowing. CloudSEK collega cinque handle npm allo stesso operatore.
Questi dettagli identitari provengono dall'autovalutazione della scoperta da parte di CloudSEK: coerenti tra loro, ma non verificabili indipendentemente dalle fonti disponibili.
Cosa fare adesso
La prima azione specifica: verificare la presenza di function-flag, function-color o cdn-img-fetch nei lockfile npm generati prima del primo ottobre 2026. Il registro non li ha bloccati; la rimozione manuale è l'unica via.
La seconda azione: controllare i log di installazione npm su sistemi Windows per riferimenti a pacchetti con nomi simili a librerie utility — function-*, *-fetch, *-native — che possano mascherare payload MALFEX.
La terza azione: monitorare le advisory OSV emesse da Amazon Inspector, l'unico meccanismo che ha coperto parzialmente cdn-img-fetch, per eventuali estensioni della copertura ai tre pacchetti rimanenti.
Il caso solleva una questione sistemica. Quando un pacchetto con oltre 37.000 download può restare malevolo per quattordici mesi senza advisory, il meccanismo di rilevamento del registro npm non è lento: è inesistente per questa classe di minacce.
"The three packages without advisories are the only active threats defenders can target today" — CloudSEK
La banalità del nome, la sofisticazione del payload
function-flag. function-color. cdn-img-fetch. Nomi da tutorial, da dipendenza dimenticata, da riga in un file che nessuno legge. Eppure uno di questi nomi ha trasportato un RAT con C2 su blockchain, un stealer con webhook attivo, quattordici mesi di silenzio.
Il contrasto non è ironia: è il metodo. L'operatore ha scommesso sulla noncuranza — quella del registro, quella del developer che installa senza controllare, quella del sistema che non distingue un errore silenzioso su macOS da una minaccia reale su Windows. Ha vinto tre volte su otto. E al primo ottobre 2026, ancora aspetta il prossimo npm install.
Quanti altri function-flag esistono, in attesa solo di essere cercati?
Fonti: SecurityWeek/Checkmarx; CloudSEK. I dati identitari dell'operatore provengono da autovalutazione della scoperta e non sono verificabili indipendentemente. Nessun advisory ufficiale npm è stato emesso per i tre pacchetti rimanenti al momento della pubblicazione.
Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.
Fonti
- https://www.securityweek.com/long-running-npm-malware-campaign-accumulates-40000-downloads/
- https://radar.offseq.com/threat/long-running-npm-malware-campaign-accumulates-40000-downloads-878e4253d5baf5a8
- https://www.cloudsek.com/blog/malfex-malicious-npm-postinstall-supply-chain-campaign
- https://unit42.paloaltonetworks.com/monitoring-npm-supply-chain-attacks/
- https://www.cyfirma.com/research/new-npm-supply-chain-campaign-identified-a-multi-stage-cryptocurrency-malware-with-more-than-2-7-million-downloads/
- https://podcast.securityweek.com/
Ricevi DeafLetter
Una selezione settimanale di segnali, vulnerabilità e guide. Gli avvisi critici restano facoltativi.
Puoi cancellarti in ogni momento. Privacy policy.