TIPC プロトコルの使用時に発生する Linux カーネルのリモート脆弱性

TIPC (透過的プロセス間通信) ネットワーク プロトコルの動作を保証する Linux カーネル モジュールに脆弱性 (CVE-2022-0435) が確認されており、特別に設計されたネットワークを送信することでカーネル レベルでコードが実行される可能性があります。パケット。 この問題は、tipc.ko カーネル モジュールがロードされ、TIPC スタックが構成されているシステムにのみ影響します。TIPC スタックは通常クラスタで使用され、非特化 Linux ディストリビューションではデフォルトで有効になっていません。

memcpy() 関数に追加の境界チェックを追加する「CONFIG_FORTIFY_SRC=y」モード (RHEL で使用) でカーネルを構築する場合、操作は緊急停止 (カーネルパニック) に限定されることに注意してください。 追加のチェックを行わずに実行され、スタックの保護に使用されるカナリア タグに関する情報が漏洩すると、この問題が悪用されてカーネル権限によるリモート コード実行が可能になります。 問題を特定した研究者らは、この悪用手法は些細なものであり、ディストリビューションの脆弱性が広範囲に排除された後に公開されるだろうと主張している。

この脆弱性は、パケットの処理時に発生するスタック オーバーフローによって引き起こされます。ドメイン メンバー ノードの数を含むフィールドの値が 64 を超えます。tipc.ko モジュールにノード パラメータを格納するには、固定配列「u32 members[64 ]”が使用されますが、パケットで指定されたノード番号の処理の過程で、ノード番号は「member_cnt」の値をチェックしません。これにより、次にメモリ領域内のデータの制御された上書きに64を超える値が使用されることが許可されますスタック上の「dom_bef」構造体にコピーします。

この脆弱性の原因となるバグは 15 年 2016 月 4.8 日に導入され、Linux 5.16.9 カーネルに含まれていました。 この脆弱性は、Linux カーネル リリース 5.15.23、5.10.100、5.4.179、4.19.229、4.14.266、4.9.301、および XNUMX で解決されました。 RHEL、Debian、Ubuntu、SUSE、Fedora、Gentoo、Arch Linux など、ほとんどのディストリビューションのカーネルでは、この問題は未解決のままです。

TIPC プロトコルは元々エリクソンによって開発され、クラスター内のプロセス間通信を組織化するように設計されており、主にクラスター ノードでアクティブ化されます。 TIPC は、イーサネットまたは UDP (ネットワーク ポート 6118) 上で動作できます。 イーサネット経由で動作している場合はローカル ネットワークから攻撃が実行される可能性があり、UDP を使用している場合は、ポートがファイアウォールでカバーされていない場合はグローバル ネットワークから攻撃が実行される可能性があります。 この攻撃は、ホストの権限のないローカル ユーザーによって実行される可能性もあります。 TIPC をアクティブにするには、tipc.ko カーネル モジュールをダウンロードし、netlink またはtipc ユーティリティを使用してネットワーク インターフェイスへのバインドを構成する必要があります。

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

コメントを追加します