ルート権限を取得できるようになる、Enlightenment ユーザー環境の脆弱性

権限のないローカル ユーザーが root 権限でコードを実行できる脆弱性 (CVE-2022-37706) が、Enlightenment ユーザー環境で確認されました。 この脆弱性はまだ修正されていません (ゼロデイ) が、パブリック ドメインで利用可能なエクスプロイトがすでに存在しており、Ubuntu 0 でテストされています。

問題は enlightenment_sys 実行可能ファイルにあります。この実行可能ファイルは suid root フラグとともに出荷され、system() の呼び出しを通じてマウント ユーティリティによるドライブのマウントなど、許可された特定のコマンドを実行します。 system() 呼び出しに渡される文字列を生成する関数の誤った操作により、起動されるコマンドの引数から引用符が切り取られ、独自のコードを実行するために使用できます。 たとえば、 mkdir -p /tmp/net mkdir -p "/tmp/;/tmp/exploit" echo "/bin/sh" > /tmp/exploit chmod a+x /tmp/exploit enlightenment_sys /bin/mount を実行する場合- o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), “/dev/../tmp/;/tmp/exploit” /tmp// /ネット

二重引用符が削除されたため、指定されたコマンド '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' の代わりに、二重引用符のない文字列が表示されます。 system() 関数「/bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net」に渡され、コマンド「/tmp/exploit /tmp///net」が実行されます。 ' デバイスへのパスの一部として処理されるのではなく、個別に実行されます。 「/dev/../tmp/」と「/tmp///net」の行は、enlightenment_sys のマウント コマンドの引数チェックをバイパスするために選択されています (マウント デバイスは /dev/ で始まり、既存のファイルを指す必要があります)マウント ポイントの XNUMX つの「/」文字は、必要なパス サイズを実現するために指定されます)。

出所: オープンネット.ru

コメントを追加します