Le 8 janvier 2022, des milliers de développeurs à travers le monde ouvrent leur terminal et découvrent la même scène absurde. Sur leurs écrans défile en boucle le message « LIBERTY LIBERTY LIBERTY », suivi d’un torrent de caractères illisibles. Leurs applications sont gelées. Des pipelines de production plantent. Des équipes de sécurité sont réveillées en urgence. Chez Amazon, chez Facebook, chez des milliers de startups qui utilisent Node.js, le même constat s’impose : quelque chose ne tourne plus rond dans une brique logicielle fondamentale.
La cause ? Un homme. Un seul. Marak Squires, développeur américain, mainteneur de deux petites librairies open source que presque personne ne connaît par leur nom, mais que presque tout l’internet utilise sans le savoir. Et ce jour-là, Marak Squires vient de faire quelque chose que la communauté open source pensait impossible : il a délibérément détruit son propre travail.
Deux librairies invisibles au cœur du web
Pour comprendre l’ampleur du choc, il faut saisir ce que représentent les deux librairies en question. La première, colors.js, permet d’afficher du texte coloré dans une console. Trois lignes de code qu’un développeur écrirait en dix minutes. Sauf que ces trois lignes, tout le monde les a utilisées. Le compteur de téléchargements atteint à l’époque 3,3 milliards de téléchargements cumulés, avec plus de 23 millions de téléchargements par semaine. Près de 19 000 projets open source en dépendent directement.
La seconde, faker.js, génère des fausses données réalistes pour les tests. Prénoms, adresses, numéros de téléphone inventés. Essentielle pour tout développeur qui veut tester son code sans utiliser de vraies données clients. Compteur : 272 millions de téléchargements cumulés et plus de 2 500 projets dépendants.
Ces deux librairies ne sont pas utilisées directement par « des millions de sites ». Elles sont utilisées par les outils qui construisent ces sites. Par les frameworks qui font tourner ces sites. Par les CDK d’Amazon, par Jest de Facebook, par le Open CLI Framework de Node.js. Autrement dit : elles sont dans les fondations invisibles d’une bonne partie du web moderne. Et c’est précisément cette position stratégique qui a transformé un geste de protestation solitaire en crise mondiale de quelques heures.
Le geste : sabotage en deux temps
La méthode de Squires est d’une simplicité brutale. Sur colors.js, il injecte dans une nouvelle version une boucle infinie qui force le programme à imprimer « LIBERTY LIBERTY LIBERTY » indéfiniment, suivi d’un texte Zalgo — ces caractères Unicode distordus qui transforment n’importe quel affichage en bouillie visuelle. Les versions publiées portent des numéros volontairement provocateurs : 1.4.44-liberty-2, 1.4.1, 1.4.2.
Sur faker.js, la démarche est encore plus radicale. Squires purge purement et simplement le code fonctionnel du paquet. La version 6.6.6 — le numéro n’est pas un hasard — se réduit à un fichier README posant une question énigmatique : « What really happened with Aaron Swartz? », en référence au jeune activiste du web décédé en 2013 après avoir été poursuivi par la justice américaine pour téléchargement massif d’articles universitaires.
Le sabotage se déploie en quelques heures. Les systèmes d’intégration continue qui récupèrent automatiquement les dernières versions des librairies embarquent sans le savoir les versions piégées. Les builds cassent. Les outils en ligne de commande affichent « LIBERTY LIBERTY LIBERTY » en boucle. Sur GitHub et Twitter, les premiers signalements arrivent au compte-gouttes, puis en cascade. Dans un premier temps, beaucoup pensent à un piratage — les scénarios d’open source hijacking sont courants en cette période. Il faudra plusieurs heures pour comprendre que l’auteur du sabotage est le mainteneur lui-même.
Un mobile : l’exploitation des développeurs par les géants de la tech
Pourquoi un développeur détruirait-il un travail qui représente des années d’efforts ? La réponse, Marak Squires l’avait donnée publiquement dès 2020, dans un message posté sur GitHub et passé largement inaperçu à l’époque. Il y écrivait, en substance, qu’il refusait désormais de soutenir gratuitement les entreprises du Fortune 500 avec son travail open source, et leur suggérait de lui envoyer un contrat annuel à six chiffres ou de laisser quelqu’un d’autre reprendre le projet.
La phrase cristallise une colère qui dépasse largement son auteur. Depuis des années, la communauté open source bouillonne autour d’une injustice structurelle : des librairies maintenues gratuitement par une ou deux personnes sur leur temps libre font tourner des applications qui génèrent des milliards de revenus pour les géants de la tech. Amazon, Google, Meta, Microsoft — toutes ces entreprises construisent des pans entiers de leur infrastructure sur du code qu’elles n’ont jamais payé et dont elles ne contribuent à la maintenance que marginalement.
Squires n’est pas le premier à se plaindre de cette asymétrie. Il est le premier à la transformer en arme. Son geste est politique avant d’être technique. Et il va ouvrir une boîte de Pandore que la communauté open source n’a toujours pas refermée.
L’onde de choc et le terme qui va rester : « protestware »
Les conséquences immédiates sont gérables. GitHub suspend temporairement le compte de Squires. Les registres npm retirent les versions malveillantes en quelques heures. Les développeurs qui avaient épinglé leurs dépendances à une version spécifique ne sont pas touchés — les autres patchent en urgence. La crise dure moins d’une journée.
Mais dans les semaines qui suivent, le geste fait école. En mars 2022, quelques jours après l’invasion russe de l’Ukraine, un autre développeur baptisé Brandon Nozaki Miller sabote à son tour sa librairie node-ipc — téléchargée plus d’un million de fois par semaine et utilisée notamment par Vue.js. Cette fois, le code inséré est clairement malveillant : il tente d’écraser tous les fichiers des utilisateurs dont l’adresse IP est localisée en Russie ou en Biélorussie.
Un terme émerge pour désigner ce phénomène : « protestware ». Du logiciel transformé en arme politique par son propre créateur. Un commentateur emploie une formule qui va rester : « dependency terrorism » — le terrorisme des dépendances. D’autres, plus directs, parlent simplement de malware, arguant qu’un code qui détruit délibérément des systèmes reste un code malveillant, peu importe le motif.
Une vulnérabilité structurelle que personne n’avait vu venir
L’affaire Squires a révélé au grand public une faiblesse fondamentale du web moderne. L’infrastructure open source, présentée pendant vingt ans comme un triomphe de l’intelligence collective, repose en réalité sur un nombre étonnamment restreint de mainteneurs individuels. Des développeurs isolés, souvent non rémunérés, qui portent sur leurs épaules des briques utilisées par des milliards d’utilisateurs finaux.
Le chercheur en sécurité Feross Aboukhadijeh, fondateur de Socket, a résumé le dilemme auquel font face les plateformes comme GitHub : d’un côté, elles veulent protéger la liberté d’expression des mainteneurs ; de l’autre, elles ne peuvent pas laisser leurs registres devenir des vecteurs de sabotage pour les écosystèmes qu’elles hébergent.
Et l’histoire n’est pas nouvelle. En 2016 déjà, un développeur nommé Azer Koçulu avait retiré du jour au lendemain 273 de ses paquets de npm après un différend de marque avec une startup. Parmi eux, left-pad — onze lignes de code d’une trivialité absolue. Ces onze lignes de code avaient fait planter des milliers d’applications à travers le monde pendant plusieurs heures.
Ce que le monde du dev en a retiré
Trois ans après le sabotage de colors.js, l’écosystème a partiellement appris. Les développeurs professionnels épinglent désormais systématiquement leurs dépendances à des versions précises, plutôt que de laisser leurs outils récupérer automatiquement les dernières. Les outils de scan de supply chain — Snyk, Sonatype, Socket — se sont multipliés et détectent désormais les comportements suspects de protestware. Les grandes entreprises ont commencé à financer directement certains mainteneurs critiques, via des programmes comme GitHub Sponsors ou Open Collective.
Mais la leçon profonde reste largement ignorée. Des dizaines de milliers de librairies essentielles au fonctionnement du web sont encore maintenues par une poignée d’individus qui peuvent, à tout moment, changer d’avis. La question que posait Marak Squires en 2022 — qui paye vraiment pour le code qui fait tourner le monde ? — n’a toujours pas de réponse satisfaisante.
Squires, lui, n’a jamais vraiment expliqué ses motivations dans le détail. Son compte GitHub existe toujours. Il n’a plus jamais maintenu de paquet majeur sur npm. Et quelque part, des milliers de développeurs se souviennent encore du matin où leurs écrans se sont mis à afficher, en boucle infinie, trois mots qui ressemblaient à un cri : LIBERTY LIBERTY LIBERTY.




