eBPF 子系統中發現了兩個新的漏洞,允許在核心內部執行處理程序。 Linux 在配備 JIT 的特殊虛擬機器中,這兩個漏洞都允許攻擊者在隔離的 eBPF 虛擬機器之外以核心權限執行程式碼。有關這些問題的資訊由 Zero Day Initiative 團隊發布,該團隊負責運營 Pwn2Own 競賽,今年的競賽演示了三種攻擊方法。 Ubuntu Linux這些攻擊利用了以前未知的漏洞(目前尚不清楚 eBPF 中的漏洞是否與這些攻擊有關)。
- CVE-2021-3490 - 此漏洞是由於在 eBPF ALU32 中執行位元 AND、OR 和 XOR 運算時缺乏 32 位元越界檢查而導致的。 攻擊者可以利用此錯誤在分配的緩衝區範圍之外讀取和寫入資料。 XOR 運算的問題從核心版本 5.7-rc1 開始出現,AND 和 OR 運算的問題從 5.10-rc1 開始出現。
- CVE-2021-3489 - 此漏洞是由環形緩衝區實作中的錯誤引起的,並且是由於 bpf_ringbuf_reserve 函數沒有檢查分配的記憶體區域的大小可能小於實際大小的可能性環緩衝區的。 問題從 5.8-rc1 版本開始出現。
可以在以下頁面追蹤發行版中漏洞修復的狀態: Ubuntu, Debian該漏洞已在 RHEL、Fedora、SUSE 和 Arch 等作業系統中修復。修復程序也以補丁的形式提供(CVE-2021-3489、CVE-2021-3490)。此漏洞的利用取決於使用者是否擁有對 eBPF 系統呼叫的存取權限。例如,在 RHEL 的預設設定中,利用此漏洞需要使用者擁有 CAP_SYS_ADMIN 權限。
核心中的另一個漏洞需要單獨說明。 Linux — CVE-2021-32606,此漏洞允許本機使用者將其權限提升至 root。此問題始於核心。 Linux 5.11 是由 CAN ISOTP 協定實作中的競爭條件引起的,由於在處理 CAN_ISOTP_SF_BROADCAST 標誌時 isotp_setsockopt() 函數中沒有設定適當的鎖,因此允許更改套接字綁定參數。
ISOTP套接字關閉後,與接收套接字的綁定仍然有效,在與套接字關聯的記憶體被釋放後,可以繼續使用與套接字關聯的結構(由於呼叫isotp_rcv()而導致釋放後使用)存取已釋放的 isotp_sock 結構)。 透過資料操作,您可以覆寫 sk_error_report() 函數的指標並在核心層級執行程式碼。
來源: opennet.ru
