Critical RCE Vulnerability Reported in Linux Kernel’s TIPC Module
2021/11/04 TheHackerNews — サイバー・セキュリティ企業の研究者たちが、Linux カーネルの Transparent Inter Process Communication (TIPC) モジュールにセキュリティ上の欠陥があることを明らかにした。この欠陥は、ローカルおよびリモートの両方から悪用され、カーネル内での任意のコード実行や、脆弱化されたマシンの制御を許す可能性がある。
今日、サイバー・セキュリティ企業の SentinelOne は、「このヒープバッファ・オーバーフローの脆弱性は、ネットワーク内のローカルまたはリモートから悪用され、攻撃者にカーネル特権が奪われ、システム全体が危険にさらされることがある」と、発表したレポートの中で述べている。
TIPC (Transparent Inter Process Communication) とは、動的なクラスタ環境で動作するノードが、TCP などのプロトコルよりも効率的かつ耐障害性に優れた方法で、確実に相互に通信できるように設計されたトランスポート層プロトコルである。
SentinelOne が確認した脆弱性は、2020年9月に導入された、MSG_CRYPTOと呼ばれる新しいメッセージタイプに関係しており、クラスター内のピアノードが暗号鍵を送信できるようになっている。
このプロトコルには、復号後のメッセージを検証し、パケットのペイロード・サイズが最大メッセージ・サイズを超えていないこと、および、メッセージがヘッダーより大きいことを確認するチェック機能があるが、鍵 (keylen) 自体の長さには、何の制限もかけられていないことが判明した。
その結果、「攻撃者は、ヒープメモリを確保するために、小さなボディサイズのパケットを作成し、keylen 属性に任意のサイズを使用して、境界外に書き込むことができる」というシナリオが発生する。
現在まで、この欠陥が実際の攻撃に悪用された形跡はなく、10月19日の責任ある開示を経て、2021年10月31日にリリースされた Linux カーネル Ver 5.15 で、この問題は FIX した。
SentinelOne の研究員である Max Van Amerongen は、「tipc_crypto_key_rcv 関数は、MSG_CRYPTO メッセージを解析して、クラスタ内の他のノードからのメッセージを復号化するための鍵を受け取る。このパッチは、メッセージ・ボディに指定されたサイズが、受信したメッセージに対して有効であることを検証する。TIPC 自体はシステムにより自動的にロードされるのではなく、エンドユーザーによりロードされるが、権限のないローカルな視点から TIPC を設定できる。したがって、リモートから悪用される可能性があり、ネットワークで TIPC を使用するケースにおいては、とても危険な脆弱性となる」と述べている。
Linux と TIPC で検索してみたら、NVD で CVE-2021-43267 が見つかりました。Transparent Inter-Process Communication の問題で、バージョンは 5.14.16 以下とのことなので、間違いないでしょう。 ちなみに、CWE-20 で CVSS は 9.8 です。8月に「Linux System をハックする深刻な脆弱性のリスト Top-15」という記事をポストしていますが、それらに匹敵する深刻さを持った脆弱性のようです。