Se avete controllato solo il pacchetto npm, è tutto a posto. Il problema è che migliaia di sviluppatori non installano le librerie da npm: le clonano da GitHub, magari per contribuire, per fare il fork, o semplicemente perché il loro build system punta al repository invece che al registry. È proprio questa abitudine, apparentemente innocua, che un attaccante ha sfruttato per trasformare antd-img-crop — una libreria React per il ritaglio di immagini con circa 98.000 download settimanali, parte dell’ecosistema Ant Design — in un vettore per lo stealer multipiattaforma OverLord.
Un force-push travestito da release legittima
Il 31 ottobre un attaccante, impossessatosi dell’account di un manutentore del progetto, ha eseguito un force-push sul ramo principale del repository GitHub di antd-img-crop. Il commit incriminato, identificato come 2aa8504, non ha nulla di sospetto a un primo sguardo: riporta lo stesso autore, la stessa data (12 marzo) e lo stesso messaggio della release 4.30.0 originale. È una copia quasi perfetta, pensata per sopravvivere a un’occhiata superficiale alla cronologia dei commit.
La differenza sta in una singola riga aggiunta al package.json: uno script prebuild che punta a scripts/prebuild.js. Da quel momento, qualunque sviluppatore che clona il repository ed esegue il normalissimo comando npm run build innesca automaticamente il payload, senza alcun avviso visibile. Il pacchetto distribuito su npm, va ribadito, non è mai stato toccato: il rischio riguarda esclusivamente chi costruisce il progetto a partire dal sorgente GitHub.
Da un falso installer a uno stealer completo
Lo script prebuild.js scarica un finto installer con il nome rassicurante di deepfake_guard, che a sua volta recupera un payload JavaScript cifrato, lo decifra e lo esegue direttamente in memoria, senza mai scriverlo su disco in chiaro — una tecnica pensata esplicitamente per sfuggire agli antivirus basati su firma. Per individuare il proprio server di comando e controllo, il malware non si affida a un dominio fisso ma consulta GitLab, usato come una sorta di directory nascosta e aggiornabile dall’attaccante in qualunque momento.
Il payload finale è OverLord, uno stealer cross-platform che gira indifferentemente su macOS, Linux e Windows. Il suo raggio d’azione è ampio:
- password e cookie salvati nei browser
- chiavi SSH e file di configurazione sensibili come
.env,.npmrce.gitconfig - il contenuto del portachiavi (keychain) di macOS
- i dati delle estensioni wallet più diffuse — MetaMask, Phantom, Rabby — oltre a circa 34 wallet desktop differenti
Per completare il furto, OverLord mostra anche una finta richiesta di password di sistema, un classico trucco di social engineering per ottenere ulteriori segreti direttamente dalla vittima, e apre un canale di accesso remoto alla macchina compromessa. La persistenza viene garantita mascherandosi da componente Google — un LaunchDaemon com.google.UpdateSupporter su macOS, un servizio google-agent.service su Linux, un’attività pianificata GoogleUpdateSupporterNode su Windows — nomi scelti apposta per non destare sospetti in una lista di processi.
Non un episodio isolato
A scoprire e documentare l’attacco sono stati i ricercatori di SafeDep, che il 3 novembre hanno pubblicato un’analisi a firma di Kunal Singh. Il report emerge da un contesto più ampio e più inquietante del singolo repository: lo stesso account del manutentore aveva già inserito, il 21 agosto, un loader molto simile nel tema Hugo hugo-paper, rimosso solo due mesi dopo, il 21 ottobre. Per SafeDep, questo pattern suggerisce che l’account sia tuttora sotto il controllo dell’attaccante, e che altri progetti dello stesso manutentore vadano trattati con sospetto.
I ricercatori segnalano anche due vettori collaterali della stessa infrastruttura: un falso portale carriere di Amber Group che sostituiva il contenuto degli appunti di sistema per indurre la vittima a incollare ed eseguire un comando malevolo nel terminale (la tecnica nota come ClickFix), e un’estensione per VS Code o Cursor, google-dev-tools.google-update-support, che il malware stesso provvedeva a disinstallare dopo l’esecuzione per ridurre le tracce visibili. Lo schema complessivo — manipolazione di repository fidati, finti portali di selezione del personale, furto mirato di asset crypto — ricalca da vicino le caratteristiche della campagna nota come Contagious Interview, da tempo associata a attori nordcoreani; SafeDep è però chiara nel precisare che la somiglianza nello schema operativo non equivale a un’attribuzione confermata.
Perché conta, anche per chi non usa antd-img-crop
L’aspetto più rilevante di questo incidente, per chi gestisce sicurezza della supply chain software, non è la libreria specifica ma il metodo: npm e altri registry pubblici vengono ormai scansionati e monitorati da strumenti automatici di security scanning, ma il repository GitHub sorgente spesso sfugge agli stessi controlli, perché viene considerato “la fonte di verità” quasi per definizione. Un force-push mascherato da release storica, unito a uno script di build che scarica codice da eseguire in memoria, è un modo economico ed efficace per bypassare interamente questa fiducia implicita.
Per i team che integrano dipendenze direttamente dal sorgente, o che mantengono fork e vendor interni di librerie open source, le contromisure pratiche sono poche ma indispensabili:
- Verificare se commit precedentemente firmati hanno perso il badge “Verified” su GitHub: è un segnale quasi infallibile di riscrittura della cronologia.
- Controllare i log delle attività del repository per individuare force-push non programmati, specialmente su branch protetti.
- Esaminare sempre gli script
prebuild,postinstalle simili prima di eseguire la build di un progetto, anche se familiare e usato da tempo: la fiducia acquisita nel tempo è esattamente ciò che un attaccante sfrutta. - Se si è clonato o compilato antd-img-crop dal sorgente GitHub dopo il 31 ottobre, trattare la macchina come potenzialmente compromessa: ruotare chiavi SSH, token npm/git, variabili in
.enve, soprattutto, migrare i fondi da eventuali wallet crypto configurati sulla stessa macchina.
Indicatori di compromissione
# Repository e commit
GitHub: antd-img-crop
Commit forgiato: 2aa8504 (spacciato per release 4.30.0 del 12 marzo)
Hook iniettato in package.json: "prebuild": "node scripts/prebuild.js"
File payload: scripts/prebuild.js
# Nomi malware
Finto installer: deepfake_guard
Stealer finale: OverLord
# Infrastruttura C2
icagllmbt[.]space registrato 12 ottobre 2026
buildwithknexus[.]xyz registrato 5 agosto 2026 (non piu raggiungibile)
# Persistenza
macOS: LaunchDaemon com.google.UpdateSupporter
Linux: servizio google-agent.service
Windows: attivita pianificata GoogleUpdateSupporterNode
# Vettori collaterali
Estensione VS Code/Cursor: google-dev-tools.google-update-support
Tema Hugo compromesso in precedenza: hugo-paper (loader rimosso il 21 ottobre)
Il repository risulta ora ripulito, ma SafeDep invita a considerare l’account manutentore ancora a rischio: chi dipende da altri progetti collegati allo stesso profilo farebbe bene a controllarne la cronologia dei commit con la stessa attenzione riservata ad antd-img-crop.
Lascia un commento
Devi essere connesso per inviare un commento.