
CVE-2021-4034(PwnKit)の教育用PoC、polkitのpkexecを介したLPE。認可された使用のみ。
PwnKit(polkitのpkexecにおけるローカル権限昇格)の概念実証。デフォルトインストールでは、権限のないローカルユーザーがrootになることができます。
脆弱なバージョンのpkexecは、プロセス引数カウントを誤って処理します。これにより、制御された環境変数がpkexecの環境に再導入され、最終的に攻撃者が制御する共有オブジェクトがrootとして実行されます。この脆弱性は2022年1月25日にQualys Research Teamによって公開され、CVSS v3.1で7.8(高)と評価されています。NVDエントリはCVE-2021-4034です。
2009年以降の実質的にすべてのpolkitリリースが、調整された修正まで影響を受けました。各ディストリビューションは公開日以降にパッチ適用済みパッケージをリリースしているため、ベンダーのアップデートを最新の状態に保ってください。
これは、十分に文書化され公開された脆弱性に関する教育的な参考資料です。pkexecの引数処理の欠陥を調査し、許可されたラボや評価でパッチ状況を検証し、検出と修復のメモを残すために使用しています。
所有しているシステム、またはテストを許可されているシステムでのみ実行してください。
gcc cve-2021-4034-poc.c -o cve-2021-4034-poc
./cve-2021-4034-poc
脆弱なホストでは、rootシェルに落ちます。Debian 10 busterおよびCentOS 7で確認済み。
polkitとpkexecをディストリビューションの修正リリースにパッチ適用してください。すぐにパッチを適用できない場合は、pkexecバイナリのSUIDビットをchmod 0755で削除してください。ただし、pkexecの権限委譲が失われることを受け入れてください。検出としては、空のargvや、GCONV_PATH、CHARSET、SHELLなどの異常な環境変数がrootシェルの直前に現れるpkexecの実行を警告します。
この脆弱性はQualys Research Teamによって発見され、責任を持って公開されました。
oss-security アドバイザリ: https://seclists.org/oss-sec/2022/q1/80
このコードは、学習と許可されたセキュリティテストの目的でのみ公開されています。あなたが所有していない、または書面によるテスト許可を得ていないシステムに対して実行することは違法であり、刑事上および民事上の責任を問われる可能性があります。自身のラボまたは署名された契約範囲内でのみ使用してください。このコードを使用した結果については、すべてあなた自身が責任を負います。