TIPCプロトコルのカーネル実装におけるリモート脆弱性 Linux

提供されたカーネルでは Linux TIPC(Transparent Inter-process Communication)ネットワークプロトコルの実装に重大な脆弱性(CVE-2021-43267)が発見されました。この脆弱性により、リモートの攻撃者は、特別に細工されたネットワークパケットを送信することで、カーネル権限でコードを実行できます。ただし、この脆弱性は、攻撃を実行するにはシステムでTIPCサポートを明示的に有効にする(tipc.koカーネルモジュールをロードして構成する)必要があるため、軽減されます。このモジュールは、特殊なディストリビューション以外では利用できません。 Linux デフォルトでは生成されません。

TIPCプロトコルはカーネル以降サポートされています Linux 3.19 では脆弱性が見られましたが、脆弱性を引き起こすコードはカーネル 5.10 に含まれていました。この脆弱性はカーネル 5.15.0、5.10.77、および 5.14.16 で修正されています。この問題は、 Debian 11、 Ubuntu 2021年4月10日、SUSE(未リリースのSLE15-SP4ブランチ)、RHEL(脆弱性修正がバックポートされたかどうかの詳細はまだ不明)、およびFedora。Arch向けには既にカーネルアップデートがリリースされている。 Linuxカーネルが5.10より古いディストリビューション、例えば Debian 10と Ubuntu 20.04は、この問題の影響を受けていません。

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

この脆弱性は tipc_crypto_key_rc 関数に存在し、MSG_CRYPTO タイプのパケットを解析する際に、ヘッダーに指定されたデータのサイズと実際のサイズが適切に検証されていないことに起因します。このデータは、クラスター内の他のノードから暗号化キーを取得し、それらのノードから送信されたメッセージを復号化するために使用されます。メモリにコピーされるデータのサイズは、メッセージ サイズ フィールドの値とヘッダー サイズの差として計算されますが、メッセージで送信される暗号化アルゴリズム名とキーの内容の実際のサイズは考慮されません。アルゴリズム名のサイズは固定であり、キーのサイズを含む別の属性が追加で送信されると想定されており、攻撃者はこの属性に実際の値とは異なる値を指定できるため、メッセージの末尾が割り当てられたバッファーの外部に書き込まれる可能性があります。 struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; unsigned int keylen; /* in bytes */ char key[]; };


TIPCプロトコルのカーネル実装におけるリモート脆弱性 Linux


出所: オープンネット.ru
DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster