
Technische Analyse und Proof-of-Concept für CVE-2024-48990, eine Privilege-Escalation-Schwachstelle in needrestart, die lokalen Angreifern die Ausführung von beliebigem Code als root über PYTHONPATH-Manipulation ermöglicht.
Um festzustellen, ob ein Python-Prozess (ein Prozess, der den Python-Interpreter ausführt) neu gestartet werden muss, extrahiert needrestart die Umgebungsvariable PYTHONPATH aus der /proc/pid/environ-Datei dieses Prozesses (in Zeile 193), setzt diese Umgebungsvariable, falls vorhanden (in Zeile 196), und führt Python ("$ptable->{exec}" in Zeile 203) mit einem Argument "-" aus, um ein kurzes, fest codiertes Skript von stdin zu lesen (in Zeile 204):
Leider führt needrestart, wenn ein Python-Prozess einem lokalen Angreifer gehört, Python (in Zeile 203) mit einer vom Angreifer kontrollierten PYTHONPATH-Umgebungsvariable aus, was dem Angreifer erlaubt, beliebigen Code als root auszuführen (obwohl das fest codierte Python-Skript von needrestart in Zeile 204 überhaupt nicht vom Angreifer kontrolliert wird). Dies ist CVE-2024-48990.