
Para determinar si un proceso de Python (un proceso que está ejecutando el intérprete de Python) necesita ser reiniciado, needrestart extrae la variable de entorno PYTHONPATH del archivo /proc/pid/environ de este proceso (en la línea 193), establece esta variable de entorno si existe (en la línea 196) y ejecuta Python ("$ptable->{exec}" en la línea 203) con un argumento "-" para leer un script corto y fijo desde stdin (en la línea 204):
Desafortunadamente, si un proceso de Python pertenece a un atacante local, entonces needrestart ejecuta Python (en la línea 203) con una variable de entorno PYTHONPATH controlada por el atacante, lo que permite al atacante ejecutar código arbitrario como root (aunque el script de Python fijo de needrestart en la línea 204 no está controlado por el atacante en absoluto). Esto es CVE-2024-48990.