Linux カーネルで XNUMX つの脆弱性が検出され、ユーザーは依然として権限を昇格できます。 

脆弱性

これらの欠陥が悪用されると、攻撃者は機密情報に不正にアクセスしたり、一般的に問題を引き起こしたりする可能性があります

数日前、ニュースはそれを壊しました XNUMXつの脆弱性が検出されました のサブシステム Linuxカーネル、 Netfilter および io_uring。ローカル ユーザーがシステム上での権限を昇格できるようにします。

XNUMXつ目は脆弱性です。 Netfilter サブシステムで検出された (CVE-2023-32233) これは、nftables パケット フィルタの動作を保証する nf_tables モジュールの use-after-free メモリ アクセスによって引き起こされます。

このバグは、netfilter nf_tables が設定の更新を許可しているために発生します。 グループ化されたバッチリクエストの場合 複数の基本操作 アトミックトランザクションで。

問題 Linux 6.3.1 を含む、さまざまなバージョンの Linux カーネルで再現されています。 (現在は安定版) であり、この脆弱性は、nftables 構成を更新するために特別に作成されたリクエストを送信することによって悪用される可能性があります。 この攻撃には、CLONE_NEWUSER、CLONE_NEWNS、または CLONE_NEWNET 権限がある場合 (たとえば、分離されたコンテナーを実行できる場合)、別のネットワーク名前空間で取得できる nftable へのアクセスが必要であることが述べられています。

このバグについて、問題を特定した研究者は、詳細情報と、ルート シェルを提供する実用的なエクスプロイトの例の公開を XNUMX 週間延期すると約束しました。

特定のシナリオでは、無効なバッチ リクエストに、既存の NFT 匿名セットを暗黙的に削除する操作と、その後に削除された同じ匿名 NFT セットに対して動作を試みる別の操作が含まれる場合があります。 上記のシナリオでは、上記の操作の例は、nft 匿名セットを使用する既存の nft ルールを削除することです。 後者の操作の例としては、配列が交互に削除された後でその nft 匿名配列から要素を削除しようとする試みがあり、後者の操作では、その nft 匿名配列を再度明示的に削除しようとする場合もあります。 

冒頭でも述べたように、これは数日前のことであり、エクスプロイトと情報はすでに公開されていました。 このエクスプロイトとその詳細については、次のリンクを参照してください。

XNUMX番目の障害が検出されました。 脆弱性だった (CVE-2023-2598) で 非同期 I/O インターフェイスの実装 io_uring バージョン 5.1 以降、Linux カーネルに含まれています。

この問題は、静的に割り当てられたバッファの境界外の物理メモリへのアクセスを許可する io_sqe_buffer_register 関数のバグによって発生します。 この問題は 6.3 ブランチでのみ発生し、次の 6.3.2 アップデートで修正される予定です。

元のコミットの背後にある考え方は、バッファリングされている大きなページを個々の bvec エントリに分割する代わりに、ページのバッファリングされたすべての部分に対して単一の bvec エントリを持つことができるというものであると述べられています。 具体的には、バッファ マップ内のすべてのページが、各ページを個別にマッピングするのではなく、単一の bvec エントリ内の最初のページ構造とバッファ長を使用する場合です。

したがって、bvec は、実際にアクセスできる単一ページをはるかに超えて拡張されます。 その後、IORING_OP_READ_FIXED と IORING_OP_WRITE_FIXED を使用すると、バッファ (つまり、bvec が指すメモリ) を自由に読み書きできるようになります。 これにより、実際に存在する唯一のページの背後にある物理メモリへの読み取り/書き込みアクセスが可能になります。

脆弱性に関する出版物には、エラーの再現手順が記載されています。

1.memfdを作成する
2. ファイル記述子の単一ページでエラーが発生する
3. MAP_FIXED を使用して、このページを連続した場所に繰り返しマッピングします。
4. そのページに入力した領域全体を次のように登録します。
IORING_REGISTER_BUFFERS を使用した固定バッファ
5. IORING_OP_WRITE_FIXED を使用してバッファを他のファイルに書き込みます
(OOB 読み取り) またはバッファ内のデータを読み取る IORING_OP_READ_FIXED (
OOB 書き込み)。

最後に、それは言及する価値があります すでに利用可能です  実用的なエクスプロイトのプロトタイプ (CVE-2023-2598) テスト用に、カーネル権限でコードを実行できるようにします。

脆弱性 (CVE-2023-32233) これは 6.4-rc アップデートで修正されており、ディストリビューションの脆弱性修正については次のページで確認できます。 DebianのUbuntuGentooのRHELフェドーラSUSE/openSUSEアーチ.