Ne jamais oublier le passé, tel devrait être la devise des développeurs et en particulier quand il s’agit d’une vulnérabilité. Dernier exemple en date, les chercheurs de Trellix ont déterré une faille dans Python datant de 15 ans qui pourrait potentiellement affecter plus de 350 000 dépôts de logiciels open source. Exploitée, cette brèche conduit à de l’exécution de code.

Dévoilé en 2007 sous la classification de CVE-2007-4559 par Jan Matejek, qui était à l'époque le responsable du paquet Python pour SUSE, le bug n’a jamais reçu de correctif mais a bénéficié d’une mesure d’atténuation via une mise à jour de la documentation en avertissant les développeurs du risque. Concrètement Jan Matejek détaillait la faille comme suit « « si vous mettez sous forme de tar un fichier nommé "../../../../../etc/passwd" et que l'administrateur le désarchive, /etc/passwd est écrasé ». Il s’agit donc d’un bug de traversée de répertoire autorisant un attaquant à écraser des fichiers arbitraires.

Une diffusion notamment par Copilot de GitHub

Sans preuve d’exploitation pendant toutes ces années, ce problème de sécurité est revenu à la surface cette année par Kasimir Schulz, chercheur en vulnérabilité chez Trellix. Il enquêtait sur un autre problème quand il a retrouvé cette faille de 2007 non corrigée. « La vulnérabilité est une attaque de traversée de répertoire dans les fonctions extract et extractall du module tarfile qui permet à un attaquant d'écraser des fichiers arbitraires en ajoutant la séquence '..' aux noms de fichiers dans une archive tar », souligne-t-il.

Après la divulgation de cette redécouverte, un message sur le bug tracker Python annonçait que le problème était clos. Mais le correctif reste la mise à jour de la documentation avec un avertissement, « il peut être dangereux d’extraire des archives de sources non fiables ». Pas assez suffisant pour l’équipe de Trellix qui a constaté que la vulnérabilité était présente dans des milliers de projets open source. Une analyse automatisée (via un script Python nommé Creosote) montre que plus de 350 000 dépôts sont vulnérables à cette vieille faille. Une majorité d'entre eux sert à des outils d’IA comme Copilot, l’assistant de code de GitHub. Le risque est donc que la faille se diffuse par le biais de l’assistant à d’autres projets, sans que le développeur le sache.