超過 15 年前的 Netfilter 漏洞允許提權

前幾天有消息稱 在 Netfilter 中發現了一個漏洞 (用於過濾和修改網絡數據包的 Linux 內核子系統), 允許本地用戶獲得 root 權限 在一個系統中即使在絕緣容器中。

CVE-2021-22555漏洞 這是自內核 2.6.19 以來一直存在的問題,15 年前推出,現在 由驅動程序中的錯誤引起 IPT_SO_SET_REPLACE 和 IP6T_SO_SET_REPLACE, 在兼容模式下通過 setsockopt 調用發送特殊修飾的參數時,這會導致緩衝區溢出。

也許此時很多人會想知道,Linux 內核中的一個漏洞怎麼可能會被忽視這麼長時間,答案是即使該漏洞自 Linux 2.6.19 以來就存在,但該漏洞是通過代碼發現的審計,即使 C 代碼不可複制,也不能被利用,因為當時沒有找到提升權限的必要資源。

例如,在內核 3.8 中支持非特權用戶命名空間。 此外,一些發行版有一個補丁,添加 sysctl 以禁用非特權用戶命名空間。

一般情況下,只有root用戶才能調用compat_setsockopt()必要的權限 進行攻擊 它們也可以由非特權用戶獲得 在啟用了用戶命名空間的系統上。

CVE-2021-22555 是 Linux Netfilter 中一個已有 15 年曆史的堆棧外寫漏洞,其功能強大到足以繞過所有現代安全緩解措施並實現內核代碼執行。

如此描述, 本地用戶可以使用單獨的 root 用戶創建一個容器並從那裡利用漏洞一世。 例如,“用戶命名空間”默認包含在 Ubuntu 和 Fedora 中,但不包含在 Debian 和 RHEL 中。

該漏洞可以通過部分覆蓋 m_list->next指針 msg_msg結構和實現後使用免費。 這足以讓您的內核代碼繞過 KASLR、SMAP 和 SMEP 運行。

此外,在從 32 位表示轉換為 64 位表示後保存內核結構時,由於內存大小計算不正確,xt_compat_target_from_user() 函數中出現問題。

因此,提到 該錯誤允許將四個“零”字節寫入緩衝區外的任何位置 已分配,受偏移量 0x4C 限制。 正因為如此,有人提到 事實證明,此功能足以創建漏洞利用 這允許獲得root權限:通過刪除msg_msg結構中的m_list-> next指針,創建釋放內存(use-after-free)後訪問數據的條件,然後用於獲取有關地址和通過操縱 msgsnd() 系統調用來更改其他結構。

關於錯誤報告,與檢測到的任何漏洞一樣,這涉及一個過程和報告,該報告是在 XNUMX 月份提交給內核開發人員的,然後在幾天內得到糾正,以及包含在所有支持發行版中的補丁有關該錯誤的信息可以稍後發布。

Debian、Arch Linux 和 Fedora 項目已經生成了軟件包更新。 從 Ubuntu 開始,RHEL 和 SUSE 更新正在進行中。 由於錯誤嚴重,實際可利用 並允許從容器中逃逸, 谷歌估計其發現為 10,000 美元,並將獎勵翻了一番 給發現漏洞的研究人員,並確定避免在 kCTF 集群上隔離 Kubernetes 容器的方法。

為了測試,已經準備了一個漏洞利用的工作原型 繞過 KASLR、SMAP 和 SMEP 保護機制。

終於 如果您有興趣了解更多信息, 您可以查看詳細信息 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。