セキュリティ研究者 GitHubによる それを知らせた 最近 脆弱性を特定しました (CVE-2020-16125)GNOME Display Manager(GDM)で、ログイン画面の表示を担当します。
別の脆弱性と組み合わせる アカウント追跡サービス(accounts-daemon)では、 この問題により、コードをrootとして実行できます。 この脆弱性は、DBusを介してアカウントデーモンサービスにアクセスできない場合の初期構成ユーティリティの誤った起動に関連しています。
脆弱性について
特権のないユーザーは、アカウントデーモンプロセスをクラッシュさせる可能性があります または電話を切る、 何が条件を作成しますか gnome-initial-setupユーティリティをGDMから実行します。これにより、新しいユーザーはsudoグループのメンバーとして登録できます。つまり、プログラムをrootとして実行できます。
典型的には、 GDMはgnome-initial-setupを呼び出して、最初のユーザーを設定します システムにアカウントがない場合。 アカウントの存在の確認は、accounts-daemonに連絡することによって行われます。 指定されたプロセスが失敗した場合、GDMはアカウントが欠落していると見なし、初期セットアッププロセスを開始します。
研究者は、デーモンアカウントプロセスを中断するXNUMXつの方法を特定しました-2020番目(CVE-16126-2020)は不正な特権リセットが原因で、16127番目(CVE-XNUMX-XNUMX)は「.pam_environment」ファイルの処理中にエラーが発生しました。
さらに、 デーモンアカウントに別の脆弱性が見つかりました (CVE-2018-14036) 誤ったファイルパスチェックが原因で、システム上で任意のファイルコンテンツを読み取ることができます.
アカウントデーモンの脆弱性は、Ubuntu開発者によって行われた変更によって引き起こされ、FreeDesktopプロジェクトのメインアカウントデーモンコードとDebianパッケージには表示されません。
CVE-2020-16127の問題は、ユーザーのホームディレクトリから.pam_environmentファイルの内容を読み取るis_in_pam_environment関数を実装するUbuntuに追加されたパッチに存在します。 このファイルの代わりに/ dev / zeroへのシンボリックリンクを配置すると、アカウントデーモンプロセスは無限の読み取り操作でハングし、DBusを介した要求への応答を停止します。
最新のオペレーティングシステムの脆弱性が非常に簡単に悪用されることは珍しいことです。 場合によっては、脆弱性を悪用するために数千行のコードを記述しました。
最近のエクスプロイトのほとんどは、メモリ破損の脆弱性を使用してヒープ内の偽のオブジェクトをスプーフィングしたり、ファイルをマイクロ秒精度のシンボリックリンクに置き換えてTOCTOUの脆弱性を悪用したりするなど、複雑なトリックを伴います。
そのため、最近では、悪用するためにコーディングスキルを必要としない脆弱性を見つけることは比較的まれです。 また、Ubuntuの仕組みやセキュリティ研究の経験がなくても、この脆弱性は簡単に理解できると思います。
CVE-2020-16126の脆弱性は別のパッチが原因です これは、一部のDBus呼び出し(たとえば、org.freedesktop.Accounts.User.SetLanguage)の処理中に、現在のユーザーの特権をリセットします。
アカウントデーモンプロセスは通常rootとして実行されるため、通常のユーザーはシグナルを送信できません。
しかし、追加されたパッチのおかげで、 プロセス特権はリセットできます ユーザーはシグナルを送信することでこのプロセスを終了できます。 攻撃を実行するには、特権を削除する条件(RUID)を作成し、SIGSEGVまたはSIGSTOPシグナルをアカウントデーモンプロセスに送信するだけです。
ユーザーはグラフィカルセッションを終了し、テキストコンソールに移動します (Ctrl-Alt-F1)。
グラフィカルセッションが終了した後、GDMはログイン画面を表示しようとしますが、accounts-daemonから応答を取得しようとするとハングします。
SIGSEGVおよびSIGCONTシグナルは、コンソールからアカウントデーモンプロセスに送信され、ハングします。
グラフィカルセッションを終了する前にシグナルを送信することもできますが、セッションを終了する時間を確保するために遅延して送信する必要があり、シグナルが送信される前にGDMを開始する時間がありました。
GDMのaccountsデーモンへの要求は失敗し、GDMはユーティリティgnome-initial-setupを呼び出します。このインターフェースでは、新しいアカウントを作成するだけで十分です。
この脆弱性はGNOME3.36.2および3.38.2で修正されています。 脆弱性の悪用は、Ubuntuとその派生物で確認されています。
出典 https://securitylab.github.com