使用TIPC協定時出現的Linux核心遠端漏洞

Linux 核心模組中已發現一個漏洞 (CVE-2022-0435),該漏洞可確保 TIPC(透明進程間通訊)網路協定的運行,可能允許透過傳送專門設計的網路在核心層級執行程式碼包。 此問題僅影響載入了tipc.ko核心模組並配置了TIPC堆疊的系統,該堆疊通常在叢集中使用,並且在非專業Linux發行版上預設不啟用。

值得注意的是,當在「CONFIG_FORTIFY_SRC=y」模式(在 RHEL 中使用)下建立核心時,該模式向 memcpy() 函數添加了額外的邊界檢查,操作僅限於緊急停止(核心恐慌)。 如果在沒有額外檢查的情況下執行,並且用於保護堆疊的金絲雀標籤的資訊被洩露,則可以利用該問題以核心權限進行遠端程式碼執行。 發現該問題的研究人員聲稱,該利用技術很簡單,將在廣泛消除發行版中的漏洞後公開。

這個漏洞是由於處理資料包時出現堆疊溢位導致的,其中域成員節點數字段的值超過64。tipc.ko模組中為了儲存節點參數,使用了一個固定數組「u32members[64」]」被使用,但是在處理資料包中指定的節點號的過程中不會檢查“member_cnt”的值,這使得接下來可以使用大於64的值來對記憶體區域中的資料進行受控覆蓋到堆疊上的“dom_bef”結構。

導致該漏洞的 bug 於 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 實用程式配置與網路介面的綁定。

來源: opennet.ru

添加評論