Iscriviti al webinar gratuito del 26 Maggio per diventare SOC Specialist! Scopri di più
Packagist sotto attacco: package.json infetto installa malware Linux nelle build e in GitHub Actions
Un recente attacco alla supply chain software ha colpito Packagist, il repository di riferimento per i pacchetti PHP basati su Composer, coinvolgendo otto pacchetti che contenevano codice malevolo capace di eseguire malware su Linux. Il dettaglio più insidioso è che la manomissione non era nel classico composer.json, ma in package.json, sfruttando gli script di lifecycle tipici dell’ecosistema JavaScript.
Questo approccio cross-ecosystem rende più difficile l’individuazione per chi controlla solo le dipendenze PHP, mentre in realtà molti progetti includono tool di build JavaScript insieme al codice PHP.
L’analisi ha mostrato uno script postinstall che tentava di scaricare un binario Linux da un URL di GitHub Releases, salvarlo in /tmp/.sshd, modificare i permessi con chmod per renderlo eseguibile e avviarlo in background. Un comportamento del genere equivale a una forma di remote code execution durante l’installazione o durante le pipeline di build, con impatto potenzialmente grave su server di produzione e ambienti CI/CD.
Pacchetti impattati
I pacchetti impattati includevano vari progetti in versione dev, tra cui:
- moritz-sauer-13 / silverstripe-cms-theme
- crosiersource / crosierlib-base
- devdojo / wave e genesis
- katanaui / katana
- elitedevsquad / sidecar-laravel
- r2luna / brain
- baskarcm / tzi-chat-ui
Le versioni compromesse sono state rimosse, ma resta fondamentale verificare se nel proprio progetto siano state installate release affette o se siano presenti artefatti di build già contaminati.
Sono emerse anche tracce dello stesso payload in centinaia di file su GitHub, suggerendo una campagna più ampia. In alcuni casi il codice è stato inserito direttamente in workflow di GitHub Actions, segno che gli attaccanti non puntavano a un solo vettore di esecuzione, ma a più punti della catena di distribuzione, dall’installazione locale alle automazioni in cloud.
Rischio e mitigazioni consigliate
Anche senza conoscere nel dettaglio il secondo stadio del malware, il solo downloader è sufficiente per rappresentare un rischio elevato, perché prova a nascondere l’attività e a far girare codice scaricato da remoto. Per rafforzare la sicurezza della supply chain è consigliabile:
- controllare gli script in package.json dei pacchetti PHP che includono asset JavaScript;
- limitare l’esecuzione di postinstall in ambienti sensibili;
- applicare policy di allowlist e scansioni SCA che coprano più ecosistemi.