他們在Linux eBPF子系統中發現了一個漏洞

最近有消息說 發現漏洞 (CVE-2021-29154) 在 eBPF 子系統中,該子系統允許您運行跟踪、子系統分析和流量控制控制器 運行在 Linux 內核的一個特殊的 JIT 虛擬機中 允許本地用戶在內核級別運行您的代碼。

據發現該漏洞的研究人員稱,他們能夠為 86 位和 32 位 x64 系統開發一個可供非特權用戶使用的漏洞利用工作原型。

同時 紅帽指出問題的嚴重性取決於 eBPF 系統調用的可用性 對於用戶來說。 例如,在默認配置的 RHEL 和大多數其他 Linux 發行版上,當啟用 BPF JIT 並且用戶具有 CAP_SYS_ADMIN 權限時,可以利用該漏洞。

Linux 內核中發現了一個可能被濫用的問題
本地非特權用戶升級權限。

問題是編譯器如何計算某些架構的 BPF JIT
生成機器代碼時的分支偏移量。 這可能會被濫用
創建失敗的機器代碼並在內核模式下運行它,
控制流被劫持以執行不安全的代碼。

他們詳細說明了這一點 該問題是由計算分支指令偏移量時產生的錯誤引起的 在生成機器代碼的 JIT 編譯器期間。

特別提到,在生成分支指令時,沒有考慮到經過優化階段後位移可能會發生變化,利用這種故障可以生成異常機器代碼並在分支級別執行。核心。

應該指出的是 這並不是近年來已知的 eBPF 子系統中唯一的漏洞, 自XNUMX月底以來,內核中又發現了兩個漏洞 (CVE-2020-27170,CVE-2020-27171),它提供了使用 eBPF 繞過針對 Spectre 級漏洞的保護的能力,這些漏洞允許確定內核內存的內容,並導致為某些操作的推測執行創建條件。

Spectre 攻擊需要特權代碼中存在特定腳本,從而導致指令的推測執行。 在eBPF中,找到了幾種方法 通過對傳輸執行的 BPF 程序進行操作來生成此類指令。

  • CVE-2020-27170 漏洞是由 BPF 驗證器中的指針操作引起的,這會導致推測操作訪問緩衝區外部的區域。
  • CVE-2020-27171 漏洞與使用指針時的整數下溢錯誤有關,導致對緩衝區外數據的推測性訪問。

這些問題已在內核版本 5.11.8、5.10.25、5.4.107、4.19.182 和 4.14.227 中得到修復,並且已包含在大多數 Linux 發行版的內核更新中。 研究人員準備了一個原型漏洞利用程序,允許非特權用戶從內核內存中檢索數據。

至於解決方案之一 紅帽內部的建議是:

減輕:

默認情況下,此問題不會影響大多數係統。 管理員必須啟用 BPF JIT 才會受到影響。

可以使用以下命令立即禁用它:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

或者可以通過在 /etc/sysctl.d/44-bpf -jit-disable 中設置一個值來禁用所有後續系統啟動

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

終於 如果您有興趣了解更多信息 關於該漏洞,您可以查看詳細信息 以下鏈接。

值得一提的是,該問題一直持續到版本 5.11.12(含),並且在大多數發行版中尚未得到修復,儘管修復已經存在。 可作為補丁使用。


發表您的評論

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

*

*

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