systemd-coredump の脆弱性により、suid プログラムのメモリの内容を特定できる

systemd-coredump コンポーネントで脆弱性 (CVE-2022-4415) が確認されました。systemd-coredump コンポーネントは、プロセスのクラッシュ後に生成されたコア ファイルを処理します。これにより、特権のないローカル ユーザーが、suid root フラグで実行されている特権プロセスのメモリ内容を特定できるようになります。 デフォルト設定の問題は、openSUSE、Arch、Debian、Fedora、および SLES ディストリビューションで確認されています。

この脆弱性は、systemd-coredump の fs.suid_dumpable sysctl パラメータが正しく処理されていないことが原因で発生します。このパラメータをデフォルト値の 2 に設定すると、suid フラグを持つプロセスのコア ダンプを生成できます。 カーネルによって作成された suid プロセスのコア ファイルには、root ユーザーのみが読み取りを許可するようにアクセス権が設定されている必要があることが理解されています。 systemd-coredump ユーティリティは、コア ファイルを保存するためにカーネルによって呼び出され、ルート ID の下にコア ファイルを保存しますが、さらに、最初にプロセスを起動した所有者の ID に基づいてコア ファイルへの ACL ベースの読み取りアクセスを提供します。 。

この機能を使用すると、プログラムがユーザー ID を変更し、昇格された特権で実行できるかどうかに関係なく、コア ファイルをダウンロードできます。 この攻撃は、ユーザーが suid アプリケーションを起動して SIGSEGV シグナルを送信し、異常終了時のプロセスのメモリ スライスを含むコア ファイルの内容をロードできるという事実に要約されます。

たとえば、ユーザーは「/usr/bin/su」を実行し、別の端末でコマンド「kill -s SIGSEGV `pidof su`」を使用して実行を終了できます。その後、systemd-coredump はコア ファイルを /var に保存します。 /lib/systemd/ ディレクトリ コアダンプに、現在のユーザーによる読み取りを許可する ACL を設定します。 suid ユーティリティ「su」は /etc/shadow の内容をメモリに読み取るため、攻撃者はシステム上のすべてのユーザーのパスワード ハッシュに関する情報にアクセスできます。 sudo ユーティリティは、ulimit によるコア ファイルの生成を禁止しているため、攻撃の影響を受けません。

systemd 開発者によると、この脆弱性は systemd リリース 247 (2020 年 246 月) から発生しますが、問題を特定した研究者によると、リリース 0 も影響を受けるとのことです。systemd が libacl ライブラリ (デフォルトでは ) でコンパイルされている場合にこの脆弱性が発生します。すべての一般的なディストリビューション)。 この修正は現在パッチとして利用可能です。 次のページのディストリビューション内の修正を追跡できます: Debian、Ubuntu、Gentoo、RHEL、SUSE、Fedora、Gentoo、Arch。 セキュリティの回避策として、sysctl fs.suid_dumpable を XNUMX に設定すると、systemd-coredump ハンドラーへのダンプの送信が無効になります。

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

コメントを追加します