最近有消息說 安全研究人員發現了一個關鍵漏洞 (已在 CVE-2021-43267 下列出) TIPC網絡協議的實現 Linux 內核中提供,它允許通過發送特製的網絡數據包以內核權限遠程執行代碼。
由於攻擊需要在系統上顯式啟用 TIPC 支持(通過加載和配置 tipc.ko 內核模塊)這一事實減輕了該問題的危險,這在非 Linux 發行版上默認不進行。
CodeQL 是一種分析引擎,可讓您對代碼運行查詢。 從安全角度來看,這可以讓您通過描述漏洞的外觀來找到漏洞。 然後,CodeQL 將上線並找到該漏洞的所有實例。
從 Linux 3.19 內核開始就支持 TIPC,但導致漏洞的代碼包含在 5.10 內核中。. TIPC協議最初由愛立信開發,旨在組織集群中的進程間通信,主要在集群的節點上激活。
國際貿易委員會 可以通過以太網和 UDP 工作 (網絡端口 6118)。 在通過以太網工作的情況下,攻擊可以從本地網絡進行,使用UDP時,如果端口沒有被防火牆覆蓋,則從全局網絡進行攻擊。 該攻擊也可以由沒有主機權限的本地用戶執行。 要啟用 TIPC,您必須加載 tipc.ko 內核模塊並使用 netlink 或 tipc 實用程序配置到網絡接口的鏈接。
該協議在與所有主要 Linux 發行版捆綁在一起的內核模塊中實現。 當由用戶加載時,它可以用作連接器,並且可以在使用 netlink(或使用用戶空間工具tipc,它將進行這些 netlink 調用)的接口中配置為非特權用戶。
TIPC 可以配置為在承載協議上運行,例如以太網或 UDP(在後一種情況下,內核在端口 6118 上偵聽來自任何機器的傳入消息)。 由於低權限用戶無法創建原始以太網幀,因此將承載設置為 UDP 可以輕鬆編寫本地漏洞利用程序。
該漏洞表現在tipc_crypto_key_rc函數中,是由於缺乏適當的驗證造成的 在分析具有 MSG_CRYPTO 類型的數據包時,標頭中指定的內容與數據的實際大小之間的對應關係,用於從集群中的其他節點獲取加密密鑰,以便稍後解密從這些節點發送的消息。
複製到內存中的數據大小計算為字段值與消息大小和頭部大小的差值,但不考慮傳輸的加密算法名稱的實際大小在消息和密鑰的內容中。
假設算法名的大小是固定的,另外為key傳遞了一個單獨的具有大小的屬性,攻擊者可以在這個屬性中指定一個與實際值不同的值,這將導致寫入已分配緩衝區中的消息隊列。
該漏洞已在內核 5.15.0、5.10.77 和 5.14.16 中得到修復,儘管該問題在 Debian 11、Ubuntu 21.04 / 21.10、SUSE(在尚未發布的 SLE15-SP4 分支中)、RHEL(尚未詳細說明是否已更新易受攻擊的解決方案)和 Fedora 中出現且尚未修復。
雖然 Arch Linux 的內核更新已經發布 內核版本低於 5.10 的發行版(例如 Debian 10 和 Ubuntu 20.04)不受影響。
終於 如果您有興趣了解更多信息,您可以查看詳細信息 在下面的鏈接中。