Les utilisateurs de PyTorch ayant récemment installé la version nightly entre le 25 et le 30 décembre doivent se méfier. Une dépendance dans le registre Python Package Index, utilisé par des tierces parties pour déposer du code, est en effet corrompue et peut servir à compromettre la sécurité du framework open source deep learning. Dénommée « torchtriton », cette dépendance porte le même nom que le répertoire des différentes versions nightly de PyTorch publiées, ce qui prête à confusion.

« Étant donné que l'index PyPI a la priorité, ce package malveillant a été installé à la place de la version de notre référentiel officiel. Cette conception permet à quelqu'un d'enregistrer un package du même nom que celui qui existe dans un index tiers, et d'installer leur version par défaut », écrit l'équipe PyTorch dans un billet de blog. La dépendance vérolée torchtriton contient un binaire malveillant pour récupérer des informations système (noms des serveurs, des hôtes, des noms d'utilisateurs, des répertoires de travail et des variables d'environnement) ou encore de lire les bases de données en texte brut contenant des informations sur tous les comptes d'utilisateurs (/etc/passwd), et modifier les variables de configuration qui contrôlent tous les aspects de l’apparence et du comportement de Git ($HOME/.gitconfig).

Les référentiels de codes exposés aux confusions de dépendance

Le téléchargargement de toutes ces informations est aussi rendu possible, y compris le contenu des fichiers, via des requêtes DNS cryptées vers le domaine *.h4ck[.]cfd, en utilisant le serveur DNS wheezy[.]io. « La fonctionnalité de téléchargement de fichiers du binaire est limitée aux fichiers de moins de 99 999 octets. Il télécharge également uniquement les 1 000 premiers fichiers dans $HOME (mais tous les fichiers < 99 999 octets dans le répertoire .ssh) », précise PyTorch.

Suite à cette découverte, PyTorch - géré depuis peu en tant que projet de la Fondation Linux - a pris des dispositions comme supprimer la dépendance fallacieuse des packages nightly de PyTorch et de ses index de packages. Cela n'empêche pas qu'en une semaine, plus de 2 300 téléchargements de torchtriton ont été effectués, exposant ainsi de nombreux projets PyTorch à des risques de sécurité. Ce n'est pas la première fois que des dépôts de codes sont compromis par cette technique de hack de type confusion de dépendance qui compromet la conception des écosystèmes open source, rapportée l'an dernier par le hackeur éthique Alex Birsan débouchant sur l'insertion du code malveillant dans des référentiels de code privés en enregistrant simplement les noms de bibliothèques internes sur des index de packages publics et open source