Vulnérabilité critique sur un module Node.js populaire : le mainteneur compromet son propre code, en signe de protestation contre la guerre en Ukraine, provoquant l’effacement des fichiers des utilisateurs dont les IPs sont géolocalisées en Russie et en Biélorussie.

Le module node-ipc est un module assez populaire de Node.js (environ 1,1 millions de téléchargement par semaine). Il est utilisé pour la communication locale et distante entre les processus (socket, socket Unix et Windows, en bas niveau). Il permet notamment de déployer des systèmes complexes multi-processus.

Ce 16 mars, un enregistrement CVE (notification de vulnérabilité) a été publié pour de ce module, avec un score de vulnérabilité jugé critique (9,8 / 10).

Un acte volontaire en signe de protestation

La raison de cette vulnérabilité a attiré notre attention : il ne s’agit pas d’une faille de sécurité, mais bien d’un acte volontaire de sabotage du code source par son propre mainteneur, RIAEvangelist, en signe de soutien à l’Ukraine.

Ce dernier a publié une modification du code le 7 mars 2022, sur les versions 10.1.1 et 10.1.2 du module, qui a pour objet d’effacer de manière arbitraire des fichiers, dès lors qu’il identifie que l’adresse IP du serveur sur lequel le module est installé est localisé en Russie ou en Biélorussie et ce, sans avertissement ou annonce particulière.

Depuis le 15 mars 2022, des versions correctives qui modifient cet ajout de code sont disponibles, suite à une protestation de la communauté open source.
Nous vous conseillons donc de mettre rapidement à jour ce module si vous l’utilisez.
Il faut noter que l’on retrouve un gros avantage dans ce genre de cas à l’open source, qui a permis de relever et d’analyser plus facilement cet incident, chose beaucoup plus complexe sur une version compilée par un éditeur, par exemple.

Sécurité de l’open source et neutralité de l’Internet

Ce mode de fonctionnement est très contestable, car il remet en question la sécurité de l’open source ainsi que la chaîne d’approvisionnement logicielle, d’une manière générale. Chacun ne relit pas le code source lors d’une mise à jour… Chez ICODIA, nous faisons des revues de code régulières, mais qui ne peuvent pas tout concerner…
Cet épisode met aussi une nouvelle fois en lumière le risque de prise d’initiatives personnelles, pouvant amener à des résultats finalement dramatiques et opposés à l’orientation initiale.
Cette démarche va à l’encontre des valeurs de collaboration, de transparence et de qualité des développements défendus par la communauté open source.

Dérives possibles

La méthode technique utilisée par le mainteneur du module node-ipc, est également critiquable, car basée sur des informations de géolocalisation des adresses IP qui ne sont en moyenne fiables qu’à 90%…
ICODIA, par exemple, dispose d’adresses IP enregistrées via le RIPE (Europe) mais aussi d’adresses IP enregistrées chez ARIN (États-Unis) dont certaines sont géolocalisées aux États-Unis. Si nous avions disposé d’adresses IP géolocalisées en Russie, aurions-nous pu être impactés ?
Et puis on se souviendra du virus espion Stuxnet, crée pour une attaque ciblée contre des laboratoires Iraniens, et qui s’est propagé à grande ampleur sur Internet.

Les autorités de gestion d’Internet défendent la neutralité

Les directions du RIPE et de l’ICANN ont répondu, suite à la demande de désactivation des adresses IP et noms de domaines Russes par le gouvernement Ukrainien, qu’ils condamnaient évidement cette guerre, mais que le positionnement de ces structures devait être, le plus possible, la neutralité. L’inverse pourrait créer un précédent qui remettrait en question le caractère impartial des structures gérant Internet et la qualité des bases de données qu’elles peuvent fournir. Ils ont également conseillé à toutes les structures de rester le plus neutre possible.

Concernant le module node-ipc, le positionnement est différent. Nul n’a l’obligation de l’utiliser, et cet outil est mis à disposition par son mainteneur, cependant la méthode utilisée par ce dernier est critiquable, car cette mise à jour a été faite à l’insu des utilisateurs au départ.
De plus, les pirates utilisent de plus en plus de leviers pour ajouter sur des serveurs des portes dérobées et autres joyeusetés, repository de code, dépôts logiciels, etc. Le communauté de l’open source est l’une des choses les plus importantes de l’avancée logiciel, mais elle doit elle aussi rester neutre, et la plus stable possible.

Enfin, la condamnation de ce conflit est indéniable. Cependant, pénaliser l’ensemble des acteurs et populations Russes et Biélorusses, dont une grande partie ne souhaite pas cette guerre, n’est probablement pas la solution, surtout à l’insu des utilisateurs.

 

En savoir plus :