Linux カーネル レベルでのコード実行を可能にする netfilter サブシステムの脆弱性

ネットワーク パケットのフィルタリングと変更に使用される Linux カーネルのサブシステムである Netfilter には、カーネル レベルでのコード実行を可能にする脆弱性 (CVE-2022-25636) があります。 KASLR 保護メカニズムを無効にして、ローカル ユーザーが Ubuntu 21.10 で権限を昇格できるようにするエクスプロイトの例が準備されたことが発表されました。 この問題はカーネル 5.4 以降で発生します。 この修正はパッチとして引き続き利用可能です (修正カーネル リリースは生成されていません)。 Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux のページで、ディストリビューション内のパッケージ更新の公開を追跡できます。

この脆弱性は、nft_fwd_dup_netdev_offload 関数 (ファイル net/netfilter/nf_dup_netdev.c で定義) の flow->rule->action.entries 配列のサイズ計算エラーによって引き起こされ、攻撃者が制御するデータが漏洩する可能性があります。割り当てられたバッファの境界を越えてメモリ領域に書き込まれる。 このエラーは、パケット処理のハードウェア アクセラレーション (オフロード) が使用されているチェーンで「dup」および「fwd」ルールを構成すると表示されます。 オーバーフローはパケット フィルター ルールを作成してオフロード サポートを確認する前に発生するため、この脆弱性はループバック インターフェイスなどのハードウェア アクセラレーションをサポートしていないネットワーク デバイスにも当てはまります。

バッファを超える値によって net_device 構造体へのポインタが上書きされる可能性があり、上書きされた値に関するデータがユーザー空間に返されるため、この問題を悪用するのは非常に簡単であることに注意してください。これにより、アドレスを見つけることができます。攻撃を実行するために必要なメモリ内にあります。 この脆弱性を悪用するには、nftables で特定のルールを作成する必要があります。これは、CAP_NET_ADMIN 権限が必要な場合にのみ可能です。この権限は、別のネットワーク名前空間で権限のないユーザーが取得できます。 この脆弱性を利用して、コンテナ分離システムを攻撃することもできます。

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

コメントを追加します