
Analisi tecnica e proof-of-concept per CVE-2024-48990, una vulnerabilità di escalation dei privilegi in needrestart che permette a attaccanti locali di eseguire codice arbitrario come root tramite manipolazione di PYTHONPATH.
Per determinare se un processo Python (un processo che esegue l'interprete Python) necessita di essere riavviato, needrestart estrae la variabile d'ambiente PYTHONPATH dal file /proc/pid/environ di questo processo (alla riga 193), imposta questa variabile d'ambiente se esiste (alla riga 196), ed esegue Python ("$ptable->{exec}" alla riga 203) con un argomento "-" per leggere un breve script hard-coded da stdin (alla riga 204):
Sfortunatamente, se un processo Python appartiene a un attaccante locale, allora needrestart esegue Python (alla riga 203) con una variabile d'ambiente PYTHONPATH controllata dall'attaccante, il che permette all'attaccante di eseguire codice arbitrario come root (anche se lo script Python hard-coded di needrestart alla riga 204 non è affatto controllato dall'attaccante). Questa è CVE-2024-48990.