Angriffe auf Software-Lieferketten: Updates verzögern?
Immer wieder wird Software entdeckt, beispielsweise auf GitHub, die manipuliert und mit Hintertüren versehen ist, durch die Bösewichte die Kontrolle über jeden Rechner erlangen können, auf dem die Software läuft. Durch solche Malware kann man auch betroffen sein, wenn man für seine eigene Python-Software die Paketabhängigkeiten aktualisiert – und das vielleicht gerade deshalb, weil man durch neuere Pakete Fehler in früheren Versionen beheben lassen will.
Gerade jetzt ist das Python-Paket LiteLLM als kompromittiert aufgefallen, das in der Version 1.82.8 SSH-Keys, Zugangsdaten, Krypto-Börsen etc. geklaut hat.
Deshalb gehen manche Entwickler und Admins dazu über, nicht die neuesten Versionen der Abhängigkeiten zu benutzen, sondern ein paar Tage abzuwarten, ob in der Zwischenzeit Probleme erkannt werden.
Einige Subkommandos von uv haben eine Option --exclude-newer
(z.B. run <https://docs.astral.sh/uv/reference/cli/#uv-run>_), mit der
Paketversionen, die neuer als ein bestimmtes Datum oder ein Zeitraum ('1 week')
sind, von der Auflösung von Abhängigkeiten ausgeschlossen werden können.
(Stattdessen kann global die Variable UV_EXCLUDE_NEWER auf einen
geeigneten Wert gesetzt werden.)
Dieses Feature ist für reproduzierbare Builds gedacht, kann aber auch zum Dependency Cooling genutzt werden, um Probleme mit solchen Malware-Paketen zu vermeiden.