Dev corrompt les « couleurs » et « faux » des bibliothèques NPM en cassant des milliers d’applications

npm

Les utilisateurs des bibliothèques open source populaires « colors » et « faker » ont été stupéfaits après avoir vu leurs applications, utilisant ces bibliothèques, imprimant des données de charabia et cassant.

Certains ont supposé que les bibliothèques NPM avaient été compromises, mais il s’avère qu’il y a beaucoup plus dans l’histoire.

Le développeur de ces bibliothèques a intentionnellement introduit une boucle infinie qui a bloqué des milliers de projets qui dépendent des « couleurs et du « faux ».

le couleurs la bibliothèque reçoit plus 20 millions de téléchargements hebdomadaires sur npm seulement, et compte près de 19 000 projets qui en dépendent. Tandis que, ‘faussaire‘ reçoit plus de 2,8 millions de téléchargements hebdomadaires sur npm et compte plus de 2 500 personnes à charge.

La révolution open source ?

Le développeur derrière les bibliothèques NPM open source populaires « colors » (alias colours.js sur GitHub) et ‘faker’ (alias ‘faker.js’ sur GitHub) a intentionnellement introduit des commits malveillants qui ont un impact sur des milliers d’applications s’appuyant sur ces bibliothèques.

Hier, les utilisateurs de projets open source populaires, tels que Kit de développement cloud d’Amazon (aws-cdk) ont été stupéfaits de voir leurs applications imprimer des messages de charabia sur leur console.

Les messages comprenaient le texte « LIBERTY LIBERTY LIBERTY » suivi de caractères non ASCII :

Les utilisateurs sont stupéfaits de voir des données inutiles
Les utilisateurs sont restés stupéfaits de voir des données poubelles imprimées par des projets « faux » et « couleurs » (GitHub)

Initialement, les utilisateurs soupçonnaient que les bibliothèques « couleurs » et « faux » utilisées par ces projets étaient compromises. [1, 2, 3], similaire à la façon dont les bibliothèques coa, rc et ua-parser-js ont été détournées l’année dernière par des acteurs malveillants.

Mais, en fait, c’était le développeur derrière couleurs et faussaire qui semble avoir intentionnellement engagé le code responsable de l’erreur majeure, comme vu par EZpublish-france.fr.

Le développeur, qui s’appelle « Marak », a ajouté un « nouveau module de drapeau américain » à couleurs.js bibliothèque hier en version v1.4.44-liberty-2 qu’ils puis poussé vers GitHub et npm.

colours.js espiègle GitHub acommit
commit espiègle de colours.js réalisé par ‘Marak’ (GitHub)

le boucle infinie introduit dans le code continuera à fonctionner indéfiniment ; imprimer la séquence de caractères non ASCII charabia indéfiniment sur la console pour toutes les applications qui utilisent des « couleurs ».

De même, une version sabotée « 6.6.6 » de faussaire a été publié à GitHub et npm.

« Il a été porté à notre attention qu’il y a un bug zalgo dans la version v1.4.44-liberty-2 des couleurs, » moqué le développeur.

« S’il vous plaît, sachez que nous travaillons en ce moment pour corriger la situation et que nous aurons une résolution sous peu. »

La raison de ce méfait de la part du développeur semble être des représailles – contre les méga-entreprises et les consommateurs commerciaux de projets open source qui s’appuient largement sur des logiciels gratuits et alimentés par la communauté mais qui, selon le développeur, ne rendent pas à la communauté.

En novembre 2020, Marak avait averti qu’ils ne soutiendraient plus les grandes entreprises avec leur « travail gratuit » et que les entités commerciales devraient envisager de bifurquer les projets ou de compenser le développeur avec un salaire annuel « à six chiffres ».

« Avec tout mon respect, je ne vais plus soutenir les Fortune 500 (et d’autres entreprises de plus petite taille) avec mon travail gratuit. Il n’y a pas grand-chose d’autre à dire », a déclaré le développeur auparavant. a écrit.

« Saisissez cela comme une opportunité de m’envoyer un contrat annuel à six chiffres ou de bifurquer le projet et de faire travailler quelqu’un d’autre dessus.

Fait intéressant, à ce jour, EZpublish-france.fr a remarqué que le LISEZ-MOI La page du dépôt GitHub « faux » a également été modifiée par le développeur pour faire référence à Aaron Swartz en déclarant : « Que s’est-il réellement passé avec Aaron Swartz ?

Swartz était un programmeur, entrepreneur et hacktiviste américain de renom qui, à la suite d’une bataille juridique avec JSTOR, s’est suicidé.

Dans un effort pour rendre l’information librement accessible à tous, l’hacktiviste a téléchargé des millions d’articles de journaux à partir de la base de données JSTOR présente sur le réseau du campus du MIT, prétendument en faisant alterner son adresse IP et MAC à plusieurs reprises pour contourner les blocages technologiques mis en place par JSTOR et MIT.

Ce faisant, Swartz a peut-être enfreint la loi sur la fraude et les abus informatiques et fait face à des accusations criminelles, avec des peines allant jusqu’à trente-cinq ans de prison, s’il est reconnu coupable.

Boîte étrange de vers ?

Le geste audacieux de Marak a ouvert une boîte de vers et a reçu des réponses mitigées.

Certains membres de la communauté des logiciels open source ont salué les actions du développeur, tandis que d’autres en sont consternés.

« Apparemment, l’auteur de ‘colors.js’ est en colère de ne pas être payé… Il a donc décidé d’imprimer le drapeau américain à chaque chargement de sa bibliothèque… WTF », tweeté un utilisateur.

GitHub aurait suspendu le compte du développeur, ce qui a de nouveau suscité des commentaires mitigés :

« Supprimer votre propre code de [GitHub] est une violation de leurs conditions d’utilisation ? WTF ? C’est un kidnapping. Nous devons commencer à décentraliser l’hébergement du code source des logiciels libres », a répondu ingénieur logiciel Sergio Gómez.

« Je ne sais jamais ce qui s’est passé, mais j’héberge tous mes projets sur l’instance privée GitLab juste parce que ce genre de choses m’arrive. Ne faites jamais confiance à un fournisseur de services Internet », tweeté une autre.

« Marak a falsifié les couleurs, bricolé des tonnes de projets et s’attendait à ce que rien ne se passe ? » déclaré un développeur nommé Piero.

Notez que la décision audacieuse de Marak fait suite à la récente débâcle de log4j qui a mis le feu à Internet.

La bibliothèque open source Log4j est largement utilisée dans une vaste gamme d’applications Java, y compris celles développées par des entreprises et des entités commerciales.

Mais, peu de temps après l’exploitation massive de la vulnérabilité log4shell, les mainteneurs de la bibliothèque open source ont travaillé sans compensation pendant les vacances pour corriger le projet, alors que de plus en plus de CVE étaient découverts.

Des inquiétudes ont suivi quant à la façon dont les grandes entreprises étaient habituées à « exploitant » open-source; en le consommant sans cesse mais en ne donnant pas assez pour soutenir les bénévoles non rémunérés qui soutiennent ces projets critiques en donnant de leur temps libre.

Certains ont également critiqué les internautes et les chasseurs de bugs qui traquent les responsables de Log4j qui « travaillaient déjà sans sommeil sur des mesures d’atténuation ; correctifs, documents, CVE, réponses aux demandes de renseignements, etc. » [12, 3].

« Les réponses à l’auteur de colours.js/faker.js sabotant leurs propres packages indiquent vraiment combien de développeurs d’entreprise pensent qu’ils ont moralement droit au travail non rémunéré des développeurs open source sans rien donner en retour », a écrit un utilisateur de Twitter.

Le temps nous dira ce que l’avenir des logiciels libres implique, en ce qui concerne la Problème de pérennité de l’OSS.

En attendant, les utilisateurs de projets NPM « couleurs » et « faux » doivent s’assurer qu’ils n’utilisent pas une version dangereuse. La rétrogradation vers une version antérieure des couleurs (par exemple 1.4.0) et un faux (par exemple 5.5.3) est une solution.