La threat research di Veracode ha scoperto un nuovo pacchetto NPM maligno progettato per infiltrare i flussi di lavoro di GitHub Actions tramite una sofisticata campagna di typosquatting. Il pacchetto, denominato @acitons/artifact, è stato individuato il 7 novembre 2025 e imita il legittimo @actions/artifact — componente ufficiale del GitHub Actions Toolkit, che conta oltre 206.000 download. Gli attaccanti hanno sfruttato una semplice inversione di lettere nel nome per indurre sviluppatori distratti a installarlo nei loro workflow CI/CD. Una volta eseguito, il pacchetto attiva uno script post-installazione che scarica ed esegue malware durante i processi di build, con l’obiettivo di esfiltrare token sensibili e compromettere la supply chain dei repository GitHub.
Cosa leggere
Catena di infezione e obiettivi della campagna
Il pacchetto @acitons/artifact si comporta come un trojan all’interno dei flussi di automazione GitHub. Lo script post-install, integrato nel file package.json, scarica da un Gist GitHub un binario chiamato ci_test_harness, lo rende eseguibile con permessi elevati tramite chmod e lo lancia in background. Questo binario, compilato con strumenti come Shell Script Compiler (shc), si distingue per l’elevato livello di offuscamento e l’uso di meccanismi di scadenza che ne bloccano l’esecuzione dopo il 6 novembre 2025, riducendo così la finestra di rilevabilità. Una volta attivo, il malware analizza l’ambiente di esecuzione per verificare la presenza di variabili GITHUB_, così da assicurarsi di trovarsi all’interno di un workflow GitHub autentico prima di procedere.

L’obiettivo principale è l’esfiltrazione dei token di accesso GitHub, che permettono agli attaccanti di pubblicare artefatti malevoli o manipolare repository di alto valore. Le informazioni vengono crittografate con chiavi AES ottenute da server remoti ospitati su domini come hopto.org e inviate a endpoint app.github.dev, mascherando il traffico malevolo come comunicazioni legittime della piattaforma. La campagna punta principalmente a repository di proprietà GitHub o di organizzazioni certificate, mentre si disattiva silenziosamente in altri contesti per mantenere il massimo livello di stealth.
Struttura e funzionamento del codice malevolo
L’analisi di Veracode ha evidenziato come il malware utilizzi tecniche modulari e condizionali per limitare l’esposizione. Oltre al binario principale, il pacchetto contiene lo script offuscato verify.js, responsabile della logica di validazione del target. Questo file esegue controlli sulle variabili d’ambiente e conferma che il processo in corso appartenga a un repository GitHub prima di procedere con la raccolta dei dati. In caso contrario, termina l’esecuzione senza produrre output, evitando di generare anomalie visibili. Il codice raccoglie informazioni di sistema, token, e metadati delle build, li comprime in file temporanei nella directory staging e li invia a endpoint remoti criptati. Tutto avviene senza l’uso di strumenti esterni, sfruttando curl nativo per il download e comandi bash per la gestione dei file. Questa strategia riduce la superficie di rilevamento e bypassa i controlli antivirus tradizionali, che spesso si basano su firme statiche. Le varianti identificate dimostrano un livello di coordinamento elevato, con versioni successive pubblicate in rapida sequenza e tutte accomunate da nomi simili.
Rimozione e risposta alla minaccia
Dal 10 novembre 2025, i pacchetti malevoli compresi tra le versioni 4.0.12 e 4.0.17 sono stati rimossi da NPM, insieme agli account sospetti collegati — tra cui jmasdg, f8snaf e s0larized. Anche un secondo pacchetto, 8jfiesaf83, è stato identificato come parte della stessa campagna, con dodici versioni (da 1.0.0 a 1.0.11) che replicano la struttura del malware principale. Veracode ha notificato immediatamente NPM e GitHub, attivando il Package Firewall, che ha bloccato i download per i propri clienti già dal giorno della scoperta. Il cleanup rapido ha impedito la compromissione su larga scala, ma l’incidente sottolinea la vulnerabilità intrinseca delle supply chain open source. Gli attaccanti hanno dimostrato la capacità di sfruttare metadati falsi, account di test e infrastrutture legittime come Gist GitHub per distribuire binari non rilevati dagli antivirus. Questa metodologia, abbinata alla precisione del typosquatting, mostra una nuova tendenza verso campagne mirate e auto-limitanti, concepite per colpire obiettivi selezionati e ridurre il rischio di esposizione pubblica.
Indicatori di compromissione e mitigazione
Veracode ha condiviso una lista di Indicatori di Compromissione (IoC) che includono hash, URL e nomi di pacchetti coinvolti. Tra i principali, l’hash e3a6d0d139dc56f28f82ec161b3d17ecd137b088acd3a0e8330a5d412c025b73 e gli endpoint malevoli 83hfhjasksn.hopto.org e laughing-space-capybara-x5g6rjxq7jwvfp6q6-443.app.github.dev. Anche la presenza di file “enc” nella directory staging o di comandi curl anomali nei log di build rappresentano segnali di possibile infezione. Le misure di mitigazione raccomandate includono l’adozione di firewall per pacchetti e strumenti di scansione automatica delle dipendenze nei workflow CI/CD, oltre alla rotazione periodica dei token GitHub e all’applicazione del principio del least privilege negli ambienti di build. È essenziale educare i team di sviluppo a verificare manualmente i nomi dei pacchetti NPM installati, poiché un singolo carattere errato può compromettere l’intera pipeline. Le Software Bill of Materials (SBOM) diventano strumenti fondamentali per garantire tracciabilità e visibilità nella supply chain.
Implicazioni per la sicurezza della supply chain
L’incidente di @acitons/artifact conferma la centralità delle supply chain software come bersaglio privilegiato per gli attaccanti. La combinazione di typosquatting, offuscamento e uso di infrastrutture legittime come vettori di distribuzione riflette una sofisticazione crescente del cybercrime legato all’open source. Veracode evidenzia che simili campagne si moltiplicano, con obiettivi che spaziano dal furto di credenziali alla pubblicazione di artefatti compromessi in repository ufficiali. La presenza di expiry date nel malware indica inoltre un tentativo deliberato di evitare la rilevazione retrospettiva, complicando le analisi forensi. Secondo le linee guida OWASP Top 10 2025, i fallimenti nella supply chain rientrano tra i rischi più critici (categoria A03), richiedendo un approccio integrato tra DevOps e sicurezza applicativa. La risposta a questo incidente, coordinata tra Veracode, NPM e GitHub, dimostra come la collaborazione tra vendor e community sia l’unico modo per contenere rapidamente attacchi di questo tipo. Tuttavia, l’episodio ribadisce la necessità di monitoraggio continuo e di una maggiore consapevolezza nella gestione delle dipendenze open source.