Python : cette vulnérabilité vieille de 15 ans est présente dans plus de 350 000 projets !

Découverte en 2007, une vulnérabilité dans le langage Python reste toujours sans correctif à ce jour. Aujourd’hui, on parle d’elle de nouveau, car elle affecte plus de 350 000 dépôts qui sont vulnérable à une exécution de code arbitraire.

La faille de sécurité associée à la référence CVE-2007-4559 a été découverte en 2007, et bien que ce soit surprenant, elle n’a jamais reçu de correctif ! La seule chose effectuée, c’est une mention dans la documentation pour avertir les développeurs d’un risque éventuel, car tout dépend des fonctions utilisées dans votre code Python. Ce message est un avertissement qui indique « qu’il peut être dangereux d’extraire des archives de sources non fiables« .

Cette vulnérabilité se situe dans le package « tarfile » de Python, dont le but est de permettre la lecture et l’écriture d’archives au format TAR. Plus précisément, cette faille de type « directory transversal » est présente dans les fonctions tarfile.extract() et tarfile.extractall(). En l’exploitant, un attaquant peut écraser un fichier système présent sur votre machine. Sur le site officiel de Python, un exemple datant de 2007 est donné : « Si vous mettez dans une archive TAR un fichier nommé « ../../../../../etc/passwd » et que l’administrateur décompresser l’archive, alors le fichier /etc/passwd est écrasé.« . C’est un exemple, mais il y en a d’autres, notamment une variante qui s’appuie sur un lien symbolique.

Une vulnérabilité ignorée et redécouverte !

Plus tôt cette année, un chercheur de l’entreprise Trellix (issue de la fusion de McAfee Enterprise et de FireEye) a redécouvert la vulnérabilité CVE-2007-4559 alors qu’il enquêtait sur un autre problème de sécurité. Les chercheurs de Trellix ont approfondi leurs recherches vis-à-vis de cette vulnérabilité et il s’avère qu’elle est présente dans des milliers de projets logiciels, certains open source, d’autres non.

Ils ont analysé un échantillon de 257 dépôts Python : au final, 61% des dépôts analysés sont vulnérables à cette vulnérabilité. En utilisant ce taux de positivité, les chercheurs de Trellix estiment qu‘il y a au moins 350 000 dépôts vulnérables, sur 588 840 dépôts GitHub qui intègrent du code Python avec la fonction « import tarfile » ! Une grande partie de ces dépôts correspondent à des outils de machine learning comme GitHub Copilot.

Trellix estime également que cette vulnérabilité affecte des entreprises dans de nombreux domaines : aussi bien la sécurité, le Web, la Data Science, etc…

Cette vulnérabilité est exploitable aussi bien sur Linux que sur Windows, comme le montre Kasimir Schulz, chercheur chez Trellix. Dans ce rapport technique, on peut voir deux vidéos de démonstration sur les deux systèmes d’exploitation.

Trellix a également sur 11 000 projets pour qu’ils ne soient plus vulnérables à cette faille de sécurité, en adaptant le code. Dans les semaines à venir, il y a des chances pour que de nombreux projets soient mis à jour afin de patcher : c’est en tout cas ce que l’on peut espérer. Reste à savoir s’il y aura une réaction de la Python Software Foundation, maintenant que cette vulnérabilité refait la une de l’actualité.

Source

The post Python : cette vulnérabilité vieille de 15 ans est présente dans plus de 350 000 projets ! first appeared on IT-Connect.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.