È stata una settimana davvero pericolosa per gli utenti di Node Package Manager (npm), tool per l’automazione della gestione dei pacchetti JavaScript usato – tra gli altri – nell’ambito del progetto Node.js: gli sviluppatori hanno rilasciato una nuova versione del software, ma gli utenti hanno in seguito scoperto che la release includeva un bug dagli effetti a dir poco disastrosi.
Quando viene lanciato come root tramite il comando sudo
, infatti, npm 5.7.0 causa un cambiamento a cascata nei permessi del file system di un’installazione Linux cambiando proprietario a directory di importanza cruciale come /etc
, /usr
e /boot
.
Il risultato finale del bug è la compromissione del sistema operativo con crash, applicazioni non più funzionanti o addirittura l’impossibilità di avviare il PC. E il problema non riguarda solo gli OS Linux, visto che sono in seguito emersi casi di utenti che hanno sperimentato il problema anche su macOS e FreeBSD.
Il bug è stato risolto piuttosto in fretta e gli sviluppatori hanno distribuito una nuova versione di npm (5.7.1), e a quanto pare la versione precedente non era pronta per una distribuzione ufficiale ma avrebbe dovuto essere considerata come una release ancora provvisoria.
In ogni caso non è la prima volta che un baco nel codice di npm produce effetti disastrosi sull’ecosistema FOSS, e ora le (prevedibili) polemiche si concentrano sulla fragilità della gestione di un progetto così importante per JavaScript e Node.js – un progetto che al momento può contare solo sugli sforzi di due programmatori a tempo pieno.
Alfonso Maruccia