Un développeur semble avoir volontairement corrompu une paire de bibliothèques open source sur GitHub et le registre de logiciels npm – “faker.js” et “colors.js” – dont dépendent des milliers d'utilisateurs, rendant n'importe quel projet qui contient ces bibliothèques inutiles, comme le rapporte Bleeping Computer. Bien qu'il semble que color.js ait été mis à jour vers une version fonctionnelle, faker.js semble toujours être affecté, mais le problème peut être résolu en rétrogradant à une version précédente (5.5.3).
Les versions sabotées faire en sorte que les applications produisent à l'infini des lettres et des symboles étranges
Bleeping Computer a découvert que le développeur de ces deux bibliothèques, Marak Squires, avait introduit un commit malin (une révision de fichier sur GitHub) dans colours.js qui ajoute “un nouveau module de drapeau américain”, ainsi que le déploiement de la version 6.6.6 de faker .js, déclenchant la même tournure d'événements destructrice. Les versions sabotées font que les applications génèrent à l'infini des lettres et des symboles étranges, commençant par trois lignes de texte indiquant « LIBERTY LIBERTY LIBERTY. »
Plus curieusement encore, le fichier Lisez-moi faker.js a également été remplacé par « Que s'est-il réellement passé avec Aaron Swartz ? Swartz était un développeur de premier plan qui a aidé à établir Creative Commons, RSS et Reddit. En 2011, Swartz a été accusé d'avoir volé des documents de la base de données académique JSTOR dans le but de les rendre libres d'accès, puis s'est suicidé en 2013. La mention de Squires par Squires pourrait potentiellement faire référence à des théories du complot entourant sa mort.
Comme l'a souligné Bleeping Computer, un certain nombre d'utilisateurs, dont certains travaillant avec le kit de développement cloud d'Amazon, se sont tournés vers le système de suivi des bogues de GitHub pour exprimer leurs préoccupations concernant le problème. Et comme faker.js enregistre près de 2,5 millions de téléchargements hebdomadaires sur npm, et color.js environ 22,4 millions de téléchargements par semaine, les effets de la corruption sont probablement considérables. Pour le contexte, faker.js génère de fausses données pour les démos, color.js ajoute des couleurs aux consoles javascript.
En réponse au problème, Squires a publié une mise à jour sur GitHub pour résoudre le “problème zalgo”, qui fait référence au texte glitch que les fichiers corrompus produisent. “Il a été porté à notre attention qu'il y a un bug zalgo dans la version v1.4.44-liberty-2 des couleurs”, écrit Squires d'une manière vraisemblablement sarcastique. “S'il vous plaît, sachez que nous travaillons en ce moment pour résoudre la situation et que nous aurons une résolution sous peu.”
NPM est revenu à une version précédente du package faker.js et Github a suspendu mon accès à tous les projets publics et privés. J'ai des centaines de projets. #AaronSwartz pic.twitter.com/zFddwn631S
— marak (@marak) 6 janvier 2022
Deux jours après avoir poussé la mise à jour corrompue sur faker.js, Squires a ensuite envoyé un tweet notant qu'il avait été suspendu de GitHub, malgré le stockage de centaines de projets sur le site. À en juger par le journal des modifications sur faker.js et colours.js, cependant, il semble que sa suspension ait déjà été levée. Squires a introduit le commit faker.js le 4 janvier, a été banni le 6 janvier et n'a introduit la version “liberty” de colours.js que le 7 janvier. On ne sait pas si le compte de Squires a de nouveau été banni. The Verge a contacté GitHub avec une demande de commentaire, mais n'a pas eu de réponse immédiatement.
L'histoire ne s'arrête pas là, cependant. Bleeping Computer a déterré l'un des messages de Squires sur GitHub à partir de novembre 2020, dans lequel il déclare qu'il ne veut plus faire de travail gratuit. “Avec tout mon respect, je ne vais plus soutenir les Fortune 500 (et d'autres entreprises de plus petite taille) avec mon travail gratuit”, dit-il. “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.”
La décision audacieuse de Squires attire l'attention sur la morale – et financier – dilemme du développement open source, qui était probablement le but de ses actions. Un grand nombre de sites Web, de logiciels et d'applications s'appuient sur des développeurs open source pour créer des outils et des composants essentiels, le tout gratuitement. C'est le même problème qui oblige les développeurs non rémunérés à travailler sans relâche pour résoudre les problèmes de sécurité de leur logiciel open source, comme la peur Heartbleed en 2014 qui a affecté OpenSSL et la vulnérabilité plus récente de Log4Shell trouvée dans log4j qui a laissé les volontaires se démener pour corriger.