
Python プロセス (Python インタープリターを実行しているプロセス) を再起動する必要があるかどうかを判断するために、needrestart はこのプロセスの /proc/pid/environ から PYTHONPATH 環境変数を抽出し (193 行目)、その環境変数が存在する場合はそれを設定し (196 行目)、stdin から短いハードコードされたスクリプトを読み取るために "-" 引数を使用して Python ("$ptable->{exec}"、203 行目) を実行します (204 行目):
残念ながら、Python プロセスがローカルの攻撃者に属する場合、needrestart は攻撃者が制御する PYTHONPATH 環境変数を使用して Python を実行します (203 行目)。これにより、攻撃者は任意のコードを root として実行できます (needrestart のハードコードされた Python スクリプトが 204 行目で攻撃者にまったく制御されていないにもかかわらず)。これが CVE-2024-48990 です。