root アクセスを許可する networkd-dispatcher の脆弱性

Microsoft のセキュリティ研究者は、Networkd-dispatcher サービス (コード名 Nimbuspwn) に 2022 つの脆弱性 (CVE-29799-2022、CVE-29800-2.2) を特定しました。この脆弱性により、特権のないユーザーが root 権限で任意のコマンドを実行できるようになります。 この問題は、networkd-dispatcher XNUMX のリリースで修正されました。 ディストリビューション (Debian、RHEL、Fedora、SUSE、Ubuntu、Arch Linux) によるアップデートの公開に関する情報はまだありません。

Networkd-dispatcher は、Ubuntu を含む多くの Linux ディストリビューションで使用されており、バックグラウンド プロセス systemd-networkd を使用してネットワーク パラメーターを構成し、NetworkManager-dispatcher と同様の機能を実行します。 ネットワーク接続の状態が変化したときにスクリプトを起動します。たとえば、メインのネットワーク接続が確立された後に VPN を起動するために使用されます。

networkd-dispatcher に関連付けられたバックグラウンド プロセスは root として実行され、D-Bus 経由でイベント信号を受信します。 ネットワーク接続の状態の変化に関連するイベントに関する情報は、systemd-networkd サービスによって送信されます。 問題は、特権のないユーザーが存在しない状態イベントを生成し、スクリプトが root として実行されるようトリガーできることです。

Systemd-networkd は、/etc/networkd-dispatcher ディレクトリにあるシステム ハンドラー スクリプトのみを実行するように設計されており、ユーザーの置換にはアクセスできませんが、ファイル パス処理コードの脆弱性 (CVE-2022-29799) により、ベース ディレクトリが範囲外に存在し、任意のスクリプトが起動される可能性があります。 特に、スクリプトへのファイル パスを形成するときに、D-Bus 経由で送信された OperationalState 値と AdministrativeState 値が使用され、特殊文字はクリアされませんでした。 攻撃者は、名前に文字「../」が含まれる独自の状態を生成し、networkd-dispatcher 呼び出しを別のディレクトリにリダイレクトする可能性があります。

2022 番目の脆弱性 (CVE-29800-XNUMX) は競合状態に関連しています。スクリプト パラメーター (root に属する) のチェックと実行の間に、ファイルを置き換えてチェックをバイパスするのに十分な短い時間がありました。スクリプトは root ユーザーに属します。 さらに、networkd-dispatcher は、subprocess.Popen 呼び出しを通じてスクリプトを実行する場合など、シンボリック リンクをチェックしませんでした。これにより、攻撃の構成が大幅に簡素化されました。

操作テクニック:

  • ディレクトリ「/tmp/nimbuspwn」とシンボリックリンク「/tmp/nimbuspwn/poc.d」がディレクトリ「/sbin」を指すように作成され、root が所有する実行可能ファイルをチェックするために使用されます。
  • 「/sbin」からの実行ファイルの場合は、「/tmp/nimbuspwn」ディレクトリに同名のファイルが作成されます。たとえば、ファイル「/sbin/vgs」の場合は、実行ファイル「/tmp/nimbuspwn/vgs」が作成されます。特権のないユーザーによって作成され、所有され、攻撃者が実行したいコードが配置されます。
  • 信号が D-Bus 経由で networkd-dispatcher プロセスに送信され、OperationalState の値「../../../tmp/nimbuspwn/poc」が示されます。 名前空間「org.freedesktop.network1」でシグナルを送信するには、そのハンドラーを systemd-networkd に接続する機能が使用されます (たとえば、gpgv または epmd を使用した操作を通じて)。あるいは、systemd-networkd が機能するという事実を利用することもできます。はデフォルトでは実行されません (Linux Mint など)。
  • シグナルを受信した後、Networkd-dispatcher は、root ユーザーが所有し、ディレクトリ「/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d」にある実行可能ファイルのリストを作成します。これは実際には「/sbin」にリンクします。
  • ファイルのリストを受信したが、スクリプトはまだ起動されていない時点で、シンボリック リンクは「/tmp/nimbuspwn/poc.d」から「/tmp/nimbuspwn」にリダイレクトされ、networkd-dispatcher がルート権限を持つ攻撃者によってホストされているスクリプト。

root アクセスを許可する networkd-dispatcher の脆弱性


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

コメントを追加します