Un développeur semble avoir volontairement corrompu une paire de bibliothèques open source sur GitHub et le registre de logiciels npm – « faux.js » et « couleurs.js » – dont dépendent des milliers d’utilisateurs, rendant tout projet contenant ces bibliothèques inutile, comme indiqué par Ordinateur qui bipe. 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 vers une version précédente (5.5.3).
Ordinateur qui bipe 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 déployé version 6.6.6 de faker.js, déclenchant la même tournure d’événements destructrice. Les versions sabotées amènent les applications à produire à l’infini des lettres et des symboles étranges, commençant par trois lignes de texte qui se lisent « 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 universitaire 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 le souligne Ordinateur qui bipe, une numéro de utilisateurs – y compris 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 depuis faux.js voit près de 2,5 millions de téléchargements hebdomadaires sur npm, et couleur.js obtient 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 bogue 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 corriger la situation et que nous aurons une résolution sous peu. »
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. Le bord a contacté GitHub avec une demande de commentaire mais n’a pas immédiatement eu de réponse.
L’histoire ne s’arrête pas là, cependant. Ordinateur qui bipe déterré l’un des Publications de Squires sur GitHub à partir de novembre 2020, dans laquelle il déclare ne plus vouloir travailler gratuitement. « 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 demandez à quelqu’un d’autre de travailler dessus. »
La décision audacieuse de Squires attire l’attention sur le dilemme moral – et financier – 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.