Sicherheitsforscher von Trellix haben aufgedeckt eine schwerwiegende Schwachstelle in der Python-Bibliothek tarfile, die bei Angriffen auf die Software-Lieferkette ausgenutzt werden könnte. Die Forscher glauben, dass sie sich gegen Organisationen in großem Maßstab einsetzen ließe, was zu Angriffen führen könnte, die ebenso schwerwiegend wären wie der Angriff auf SolarWinds vor zwei Jahren getroffen hat.
Besonders beunruhigend ist, dass die Schwachstelle vor 15 Jahren erstmals offengelegt wurde und weiterhin ungepatcht ist. Da die Software-Lieferkette äußerst komplex ist und zahlreiche Abhängigkeiten umfasst, kann das Modul auch dann von einem anderen Paket installiert werden, wenn Projekte es nicht direkt benötigen.
Das Python-Modul wird tatsächlich häufig von beliebten Frameworks und Anwendungen für maschinelles Lernen verwendet, was das Risiko deutlich erhöht.
Siehe die Top-Tools für Code-Debugging und Codesicherheit
Eine Schwachstelle beim Pfad-Traversal legt Repositories offen
Laut Trellix sind Hunderttausende Repositories für den Pfad-Traversal-Angriff anfällig. Ein potenzieller Angreifer könnte damit beliebige Dateien überschreiben, indem er einfach „../“ (Punkt-Punkt-Sequenz) zu den Dateinamen in einem TAR-Archiv hinzufügt. Die Forscher kamen zu dem Schluss, dass „ein Angreifer in den meisten Fällen durch das Schreiben der Datei Code ausführen kann“.
Der Exploit scheint sich mit „nur 6 Codezeilen“ sehr einfach umsetzen zu lassen:
Das tarfile-Modul stellt Funktionen zum Extrahieren und Schreiben von Dateien in das Dateisystem bereit. Da der Code seinen Eingaben zu sehr vertraut und die an die Extraktionsfunktionen übergebenen Pfade zusammenfügt, kann er missbraucht werden.
Die Forscher erstellten mehrere Videos, in denen sie den Exploit demonstrieren, darunter eines, in dem sie sich durch das Missbrauchen der Spyder IDE administrative Rechte verschaffen – einer kostenlosen und beliebten Open-Source-Umgebung, die in Python entwickelt wurde.
Ein solcher Ansatz ist ziemlich verbreitet, was die Schwachstelle bedenklich macht. Außerdem ist es nicht ungewöhnlich, dass Pakete dieselbe Abhängigkeit verwenden, um „das Rad nicht neu zu erfinden“. Das ist in manchen Situationen ein stichhaltiges Argument, kann die Angriffsfläche in anderen Fällen jedoch vergrößern.
Python-Dokumentation warnt vor dem Problem
Es sei darauf hingewiesen, dass die offizielle Python-Dokumentation ausdrücklich vor diesem Problem warnt:
Die Forscher veröffentlichten ein kleines Python-Skript namens „creosote“, das Verzeichnisse rekursiv nach .py-Dateien durchsucht und die anfälligen Dateien ausgibt. Administratoren und Benutzer können damit ihren Code auf Schwachstellen prüfen.
Der Exploit erfordere „wenig bis gar kein Wissen über komplizierte Sicherheitsthemen“, stellten die Forscher fest. Da die Schwachstelle in freier Wildbahn weit verbreitet ist, wird empfohlen, den Quellcode und andere Python-basierte Tools zu scannen.
In einer Stellungnahme gegenüber eSecurity Planet erklärten die Trellix-Forscher: „Aufgrund der Haltung, die die Python-Entwickler eingenommen haben, besteht die derzeitige Lösung darin, dass Entwickler zusätzlichen Schadensbegrenzungscode um den Aufruf der anfälligen Funktion legen und anschließend eine neue Version für ihre Kunden veröffentlichen. Deshalb ist es unerlässlich, dass Teams Schwachstellenforschung betreiben, denn im Allgemeinen können groß angelegte Schwachstellen gepatcht werden oder es lässt sich eine einfache Umgehungslösung finden, sobald sie entdeckt wurden.“
Weiterlesen: Die besten Tools für das Management von Risiken durch Drittanbieter (TPRM)





