
CVE-2024-48990 (e CVE-2024-48992)
Para determinar se um processo Python (um processo que está executando o interpretador Python) precisa ser reiniciado, o needrestart extrai a variável de ambiente PYTHONPATH do /proc/pid/environ desse processo (na linha 193), define essa variável de ambiente se ela existir (na linha 196) e executa o Python ("$ptable->{exec}" na linha 203) com um argumento "-" para ler um script curto e embutido no código a partir do stdin (na linha 204):
Infelizmente, se um processo Python pertencer a um atacante local, o needrestart executa o Python (na linha 203) com uma variável de ambiente PYTHONPATH controlada pelo atacante, o que permite que o atacante execute código arbitrário como root (mesmo que o script Python embutido no código do needrestart na linha 204 não seja controlado pelo atacante de forma alguma). Esta é a CVE-2024-48990.