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 inutile tout projet contenant ces bibliothèques. 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). Dans l'un des messages du développeur sur GitHub datant de novembre 2020, 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 », disait-il. « Saisissez cela comme une opportunité de m'envoyer un contrat annuel à six chiffres ou de forker le projet et demander à quelqu'un d'autre de travailler dessus. »
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, affiché des données ressemblant à du charabia et planter. 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 de ces bibliothèques.
La bibliothèque colors a eu plus de 20 millions de téléchargements hebdomadaires uniquement sur npm et compte près de 19 000 projets qui en dépendent. Tandis que, faker a eu plus de 2,8 millions de téléchargements hebdomadaires sur npm et compte plus de 2 500 personnes à charge.
Le développeur de ces deux bibliothèques, Marak Squires, a introduit un commit (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 destructrice des événements. 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 de 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. Militant impliqué dans les grandes causes comme la neutralité du Net, il s’était opposé aux lois SOPA et PIPA (équivalentes de la Hadopi aux Etats-Unis). Aaron Swartz s’est suicidé en janvier 2013. Sujet aux épisodes dépressifs, il était sous le coup d’une procédure légale lourde. Il encourait pas moins de 4 millions de dollars d’amende et 30 ans de prison pour avoir cracké et dérobé 4 millions de documents académiques du MIT et du site Jstor. Un acte réalisé au nom du libre accès à la connaissance.
Un acte qui lui valait également l'accusation de "crime" ("felony" par la justice américaine.
Aaron Swartz refusait obstinément d’accepter ce terme, d'après son collègue Lawrence Lessig. Un refus qui, après 18 mois de négociations, allait donc déboucher sur un procès aux peines potentiellement très sévères.
En réaction à sa mort, plusieurs professeurs du MIT ont décidé d’honorer son combat – qu’ils soutiennent – en mettant en ligne des PDF de leurs travaux pour lutter contre le copyright sur les articles universitaires. En plus de ces professeurs, le MIT a également – officiellement et en tant qu’institution – décidé de mener une enquête interne pour déterminer comment l’école de Boston avait agi, dans le détail, depuis le début de l’affaire des « vols » de documents. Et si ses décisions n’avaient pas été disproportionnées.
Les utilisateurs signalent le problème
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 irrégulier 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 de colors », a noté 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.
La raison de ce méfait de la part du développeur semble être des représailles contre les mégaentreprises 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'il ne soutiendrait plus les grandes entreprises avec son « travail gratuit » et que les entités commerciales devraient envisager de forker 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 », disait-il. « Saisissez cela comme une opportunité de m'envoyer un contrat annuel à six chiffres ou de forker le projet et demander à 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 Heartbleed en 2014 qui a affecté OpenSSL et la vulnérabilité plus récente de Log4Shell trouvée dans log4j qui a vu les bénévoles se démener pour proposer des corrections.
Source : Web Archive
Et vous ?
Quel regard portez-vous sur le dilemme moral et financier du développement open source ? Quel est, selon vous, le meilleur moyen de parvenir à un équilibre ?
Que pensez-vous de la plainte du développeur en 2020 qui demandait à être rémunéré pour son travail ? Qui devrait le rémunérer selon vous ?
Que pensez-vous de l'action visant à faire planter les projets dépendants de ces bibliothèques ? Cela ressemble-t-il à un sabotage selon vous ? Dans quelle mesure ?
Voir aussi :
Aaron Swartz s'est suicidé, il ne fera pas 30 ans de prison. Vives réactions après la mort du développeur surdoué militant du copyleft
« La mort de Aaron Swartz ne changera rien », le suicide du développeur n'émeut pas la procureur, qui n'en est pas à son premier mort
Un dev open source aurait volontairement corrompu des bibliothèques largement utilisées, affectant des tonnes de projets.
Il avait précédemment demandé à être rémunéré pour son travail
Un dev open source aurait volontairement corrompu des bibliothèques largement utilisées, affectant des tonnes de projets.
Il avait précédemment demandé à être rémunéré pour son travail
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !