Une bibliothèque Python non corrigée touche plus de 300 000 projets open source

Des chercheurs en sécurité de Trellix ont révélé une vulnérabilité majeure dans la bibliothèque Python tarfile, qui pourrait être exploitée lors d’attaques visant la chaîne d’approvisionnement logicielle. Les chercheurs estiment qu’elle pourrait être utilisée contre des organisations à grande échelle, ce qui pourrait entraîner des attaques aussi graves que celle qui a frappé SolarWinds il y a deux ans. Plus préoccupant encore, le […]

Écrit par
Julien Maury
Julien Maury
Sep 22, 2022
3 minute read
eSecurity Planet Le contenu et les recommandations de produits sont indépendants de la rédaction. Nous pouvons gagner de l'argent lorsque vous cliquez sur des liens vers nos partenaires. En savoir plus

Les chercheurs en sécurité de Trellix ont révélé une vulnérabilité majeure dans la bibliothèque Python tarfile, qui pourrait être exploitée lors d’attaques visant la chaîne d’approvisionnement logicielle . Les chercheurs estiment qu’elle pourrait être utilisée contre des organisations à grande échelle, ce qui pourrait entraîner des attaques aussi graves que celle qui a frappé SolarWinds il y a deux ans.

Ce qui est peut-être plus préoccupant, c’est que la vulnérabilité a été divulguée pour la première fois il y a 15 ans mais reste non corrigée. Comme la chaîne d’approvisionnement logicielle est extrêmement complexe et comporte de nombreuses interdépendances, même si les projets n’ont pas besoin directement du module, celui-ci peut tout de même être installé par un autre paquet.

De fait, le module Python est souvent utilisé par des frameworks et des applications populaires d’apprentissage automatique, ce qui augmente considérablement le risque.

Voir les principaux outils de débogage et de sécurité du code

Une vulnérabilité de traversée de chemins expose les dépôts

Selon Trellix, des centaines de milliers de dépôts sont vulnérables à l’attaque par traversée de chemins, et un attaquant potentiel pourrait l’utiliser pour écraser des fichiers arbitraires en ajoutant simplement « ../ » (séquence point point) aux noms de fichiers d’une archive TAR. Les chercheurs ont conclu que « dans la plupart des cas, un attaquant peut obtenir une exécution de code grâce à l’écriture du fichier ».

L’exploitation semble très facile à réaliser avec « seulement 6 lignes de code » :

Le module tarfile fournit des fonctions permettant d’extraire et d’écrire des fichiers sur le système de fichiers. Comme le code fait excessivement confiance à ses entrées et assemble les chemins transmis aux fonctions d’extraction, il peut être détourné.

Les chercheurs ont réalisé plusieurs vidéos pour présenter l’exploitation, dont une où ils obtiennent des privilèges administrateur grâce à la faille en exploitant Spyder IDE, un environnement open source gratuit et populaire conçu en Python.

Advertisement

Cette approche est assez courante, ce qui rend la vulnérabilité préoccupante. Il n’est pas rare non plus que des paquets utilisent la même dépendance pour éviter de « réinventer la roue », ce qui est un argument valable dans certaines situations, mais peut élargir la surface d’attaque dans d’autres cas.

La documentation Python met en garde contre ce problème

Il convient de noter que la documentation officielle de Python met explicitement en garde contre ce problème :

Les chercheurs ont publié un petit script Python baptisé « creosote », qui parcourt récursivement les répertoires à la recherche de fichiers .py et affiche ceux qui sont vulnérables. Les administrateurs et les utilisateurs peuvent l’utiliser pour vérifier la présence de vulnérabilités dans leur code.

L’exploitation ne nécessite « que peu ou pas de connaissances sur les sujets complexes liés à la sécurité », ont souligné les chercheurs, et la vulnérabilité est très répandue dans la nature. Il est donc recommandé d’analyser votre code source ainsi que les autres outils fondés sur Python.

Dans une déclaration à eSecurity Planet, les chercheurs de Trellix ont déclaré que « du fait de la position adoptée par les créateurs de Python, la solution actuelle consiste pour les développeurs à ajouter du code d’atténuation autour de l’appel de fonction vulnérable, puis à en partager une nouvelle version avec leurs clients. C’est pourquoi il est essentiel que les équipes effectuent des recherches sur les vulnérabilités : en général, les vulnérabilités à grande échelle peuvent être corrigées ou faire l’objet d’une solution de contournement simple une fois découvertes. »

À lire ensuite : les meilleurs outils de gestion des risques liés aux tiers (TPRM)

Julien Maury

eSecurity Planet contributor Julien Maury writes about penetration testing, code security, open source security and more. He is a backend developer, a mentor and a technical writer who enjoys sharing his knowledge and learning new concepts.

eSecurity Planet Logo

eSecurity Planet is a leading resource for IT professionals at large enterprises who are actively researching cybersecurity vendors and latest trends. eSecurity Planet focuses on providing instruction for how to approach common security challenges, as well as informational deep-dives about advanced cybersecurity topics.

Propriété de TechnologyAdvice. © 2026 TechnologyAdvice. Tous droits réservés

Divulgation publicitaire : Certains des produits qui apparaissent sur ce site proviennent d'entreprises dont TechnologyAdvice reçoit une compensation. Cette compensation peut influencer la façon dont les produits apparaissent sur ce site, notamment l'ordre dans lequel ils apparaissent. TechnologyAdvice n'inclut pas toutes les entreprises ou tous les types de produits disponibles sur le marché.