Lo sviluppatore open source corrompe le librerie ampiamente utilizzate, colpendo tonnellate di progetti

Uno sviluppatore sembra aver danneggiato di proposito un paio di librerie open source su GitHub e il registro software npm — “fake.js” e “colori.js” — da cui dipendono migliaia di utenti, rendendo inutile qualsiasi progetto che contenga queste librerie, come riportato da Computer che sbiadisce. Sebbene sembri che color.js sia stato aggiornato a una versione funzionante, faker.js sembra ancora essere interessato, ma il problema può essere risolto eseguendo il downgrade a una versione precedente (5.5.3).

Computer che sbiadisce ha scoperto che lo sviluppatore di queste due librerie, Marak Squires, ha introdotto un commit maligno (una revisione del file su GitHub) in colors.js che aggiunge “un nuovo modulo bandiera americana”, nonché lanciato versione 6.6.6 di faker.js, innescando la stessa svolta distruttiva degli eventi. Le versioni sabotate fanno sì che le applicazioni producano all’infinito lettere e simboli strani, a cominciare da tre righe di testo che leggono “LIBERTY LIBERTY LIBERTY”.

Ancora più curiosamente, anche il file Leggimi faker.js è stato modificato in “Cosa è successo veramente con Aaron Swartz?” Swartz è stato un importante sviluppatore che ha contribuito a creare Creative Commons, RSS e Reddit. Nel 2011, Swartz è stato accusato di aver rubato documenti dal database accademico JSTOR con lo scopo di renderli liberi di accesso, e in seguito si è suicidato nel 2013. La menzione di Swartz da parte di Squires potrebbe potenzialmente riferirsi a teorie del complotto sulla sua morte.

Come sottolineato da Computer che sbiadisce, un numero di utenti — inclusi alcuni che lavorano con il Cloud Development Kit di Amazon — si sono rivolti al sistema di tracciamento dei bug di GitHub per esprimere le loro preoccupazioni sul problema. E da allora fake.js vede quasi 2,5 milioni di download settimanali su npm e color.js ottiene circa 22,4 milioni di download a settimana, gli effetti della corruzione sono probabilmente di vasta portata. Per contesto, faker.js genera dati falsi per le demo, color.js aggiunge colori alle console javascript.

In risposta al problema, Squires ha pubblicato un aggiornamento su GitHub per risolvere il “problema zalgo”, che si riferisce al testo glitch prodotto dai file corrotti. “Ci siamo accorti che c’è un bug di zalgo nella versione v1.4.44-liberty-2 dei colori”, scrive Squires in modo presumibilmente sarcastico. “Per favore, sappi che stiamo lavorando in questo momento per risolvere la situazione e avremo una soluzione a breve”.

Due giorni dopo aver inviato l’aggiornamento corrotto a faker.js, Squires ha successivamente inviato un tweet in cui affermava di essere stato sospeso da GitHub, nonostante avesse archiviato centinaia di progetti sul sito. A giudicare dal log delle modifiche sia su faker.js che su colors.js, tuttavia, sembra che la sua sospensione sia già stata revocata. Squires ha introdotto il commit faker.js il 4 gennaio, è stato bandito il 6 gennaio e non ha introdotto la versione “liberty” di colors.js fino al 7 gennaio. Non è chiaro se l’account di Squires sia stato nuovamente bannato. Il confine ha contattato GitHub con una richiesta di commento ma non ha ricevuto risposta immediatamente.

La storia non finisce qui, però. Computer che sbiadisce scavato uno di I post di Squires su GitHub da novembre 2020, in cui dichiara di non voler più fare lavoro gratuito. “Rispettosamente, non supporterò più le aziende Fortune 500 (e altre aziende di piccole dimensioni) con il mio lavoro gratuito”, afferma. “Cogli questa come un’opportunità per mandarmi un contratto annuale a sei cifre o forcella il progetto e far lavorare qualcun altro su di esso.”

La mossa audace di Squires attira l’attenzione sul dilemma morale – e finanziario – dello sviluppo open source, che era probabilmente l’obiettivo delle sue azioni. Un numero enorme di siti Web, software e app si affida a sviluppatori open source per creare strumenti e componenti essenziali, il tutto gratuitamente. È lo stesso problema che porta gli sviluppatori non pagati a lavorare instancabilmente per risolvere i problemi di sicurezza nel loro software open source, come lo spavento di Heartbleed nel 2014 che ha colpito OpenSSL e la più recente vulnerabilità di Log4Shell trovata in log4j che ha lasciato i volontari in difficoltà per risolvere.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.