Linux カーネルで、nf_tables、watch_queue、および IPsec の悪用可能な脆弱性が確認されました

Linux カーネルにいくつかの危険な脆弱性が確認されており、ローカル ユーザーがシステム内での権限を増やすことができます。検討中のすべての問題に対して、エクスプロイトの実用的なプロトタイプが準備されています。

  • watch_queue イベント追跡サブシステムの脆弱性 (CVE-2022-0995) により、カーネル メモリ内の境界外のバッファにデータが書き込まれる可能性があります。この攻撃は特権のないユーザーでも実行でき、その結果、コードがカーネル権限で実行される可能性があります。この脆弱性は watch_queue_set_size() 関数に存在し、メモリが割り当てられていない場合でも、リスト内のすべてのポインタをクリアしようとする試みに関連しています。この問題は、ほとんどの Linux ディストリビューションで使用されている「CONFIG_WATCH_QUEUE=y」オプションを使用してカーネルをビルドするときに発生します。

    この脆弱性は、11 月 21.10 日に追加されたカーネル変更で解決されました。 Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux のページで、ディストリビューション内のパッケージ更新の公開を追跡できます。このエクスプロイト プロトタイプはすでに公開されており、カーネル 5.13.0-37 を搭載した Ubuntu XNUMX で実行するときに root アクセスを取得できるようになります。

    Linux カーネルで、nf_tables、watch_queue、および IPsec の悪用可能な脆弱性が確認されました

  • IPv2022 および IPv27666 の使用時に使用される、IPsec の ESP 変換 (セキュリティ ペイロードのカプセル化) の実装に関する esp4 および esp6 カーネル モジュールの脆弱性 (CVE-4-6)。この脆弱性により、通常の権限を持つローカル ユーザーがカーネル メモリ内のオブジェクトを上書きし、システム上で権限を昇格することが可能になります。この問題は、最大メッセージ サイズが skb_page_frag_refill 構造に割り当てられた最大メモリ サイズを超える可能性があるため、割り当てられたメモリ サイズと実際に受信したデータの間の調整が不足していることが原因で発生します。

    この脆弱性は 7 月 5.17 日にカーネルで修正されました (5.16.15、21.10 などで修正されました)。 Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux のページで、ディストリビューション内のパッケージ更新の公開を追跡できます。このエクスプロイトの実用的なプロトタイプは、一般ユーザーがデフォルト構成で Ubuntu Desktop 2 への root アクセスを取得できるようになり、すでに GitHub に投稿されています。マイナーな変更を加えれば、このエクスプロイトは Fedora や Debian でも動作すると主張されています。注目すべきは、このエクスプロイトは元々 pwn2022own XNUMX コンペティション用に準備されたものでしたが、カーネル開発者がそれに関連するバグを特定して修正したため、脆弱性の詳細を公開することが決定されたことです。

  • nf_tables モジュールの netfilter サブシステムに 2022 つの脆弱性 (CVE-1015-2022、CVE-1016-XNUMX) があり、nftables パケット フィルターの動作を保証します。 XNUMX つ目の問題では、ローカルの特権のないユーザーが、スタック上に割り当てられたバッファへの範囲外の書き込みを行うことができます。特定の方法でフォーマットされ、nftables ルールにアクセスできるユーザーによって指定されたインデックスのチェック フェーズ中に処理される nftables 式を処理すると、オーバーフローが発生します。

    この脆弱性は、特定の最適化が有効になっている場合、C89 仕様に従ってコンパイラがその値に 32 ビット値を使用できる場合に、開発者が「enum nft_registers reg」の値がシングルバイトであるとほのめかしたという事実によって引き起こされます。 。この機能により、メモリのチェックと割り当て時に使用されるサイズは、構造体のデータの実際のサイズに対応せず、その結果、構造体の末尾がスタック上のポインターと重なってしまいます。

    この問題を悪用してカーネル レベルでコードを実行する可能性がありますが、攻撃を成功させるには nftable へのアクセスが必要です。nftable は CLONE_NEWUSER または CLONE_NEWNET 権限を持つ別のネットワーク名前空間で取得できます (たとえば、分離されたコンテナーを実行できる場合)。この脆弱性は、コンパイラで使用される最適化にも密接に関連しています。たとえば、「CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y」モードでビルドする場合に最適化が有効になります。 Linux カーネル 5.12 以降では、この脆弱性が悪用される可能性があります。

    netfilter の 5.13 番目の脆弱性は、nft_do_chain ハンドラーで既に解放されたメモリ領域 (use-after-free) にアクセスすることによって引き起こされ、カーネル メモリの未初期化領域のリークを引き起こす可能性があります。このリークは、nftables 式を使用した操作を通じて読み取られ、使用される可能性があります。たとえば、他の脆弱性を悪用する開発中にポインタ アドレスを決定するためです。 Linux カーネル XNUMX 以降では、この脆弱性が悪用される可能性があります。

    この脆弱性は、本日のカーネル パッチ 5.17.1、5.16.18、5.15.32、5.10.109、5.4.188、4.19.237、4.14.274、および 4.9.309 で解決されています。 Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux のページで、ディストリビューション内のパッケージ更新の公開を追跡できます。問題を特定した研究者は、両方の脆弱性に対する実用的なエクスプロイトの準備を発表しており、ディストリビューションがカーネル パッケージのアップデートをリリースした後、数日以内に公開される予定です。

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

コメントを追加します