2022年Linux內核提權漏洞總結
今年以來Linux內核出現很多嚴重安全漏洞,我們再次予以總結,以供大家參考學習和修復。
CAP_SYS_ADMIN導致Kubernetes容器逃逸(CVE-2022-0185)
(1) 漏洞說明
Linux kernel 中發現一個新的安全漏洞CVE-2022-0185。由于Linux內核"File System Context"組件中的一個堆緩存溢出漏洞,攻擊者利用該漏洞可以實現越界寫、權限提升、DoS 和任意代碼執行。使用非特權的命名空間或使用 unshare進入含有 CAP_SYS_ADMIN 權限的命名空間。Docker seccomp 默認攔截unshare命令,所以運行該命令一般是不允許的。
(2) 漏洞影響
大于5.1-rc1 以來的所有 Linux kernel 版本,包括最新5.4.173、5.10.93、5.15.1。也影響 Ubuntu 20/21、Debian 11 和部分 Red Hat Centos 8包。
(3) 危害等級
高危(CVSS 評分7.8)
(4) 修復和緩解建議
升級 Linux kernel 到 5.16.2 版本來修復該漏洞。對于這些暫時沒有可用補丁的系統,建議用戶禁用非特權用戶命名空間。在 Ubuntu 系統中,可以使用以下命令來禁用非特權命名空間:
sysctl -w kernel.unprivileged_userns_clone=0
紅帽用戶可以使用以下命令來禁用用戶命名空間:
echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf
TIPC遠程堆棧溢出(CVE-2022-0435)
安全研究者在Linux內核用于進程間透明網絡模塊通信 (TIPC) 協議中發現了本地和遠程可訪問的堆棧溢出。該模塊存在于大多數主要發行版中找到該模塊,在該模塊加載的情況下就可被利用。此外,對于遠程利用目標需要已經設置TIPC承載,即漏洞擴展到使用TIPC系統。漏洞利用非常容易,并且可能導致通過內核拒絕服務崩潰。在沒有或繞過堆棧KASLR的情況下,漏洞可能導致任意控制流劫持有效載荷該模塊是Linux 4.8版本中的監控框架中引入,并且此后該漏洞一直存在。
(1) 漏洞說明
漏洞在于`member_cnt在最初的期間檢查,函數不檢查是否低于MAX_MON_DOMAIN 定義了 `members` 數組的最大長度。通過偽裝成對等節點并與目標建立鏈接,在本地或遠程,能夠首先提交惡意域包含任意有效載荷的記錄;發送一個更新域記錄,將導致之前的惡意記錄被 memcpy到一個272字節的本地`struct tipc_mon_domain` &dom_bef[6] 觸發堆棧溢出。這樣可以通過覆蓋以下堆棧的內容&dom_bef 與來自惡意域的任意成員緩沖區首先提交的記錄;其大小受媒體限制 MTU(以太網、UDP、Inifiband),目前該漏洞已經出現可以利用Poc并可被直接利用:
(2) 影響范圍
Linux Kernel版本 >= 4.8。
CentOS 8默認內核版本受該漏洞影響。
(3) 危害等級
高危(CVSS 評分7.1)
(4) 修復建議
將Linux最新內核升級版本。紅帽官方已經發布升級補丁,Centos 8.4可以用過:
yum update kernel
升級。
cgroups漏洞容器逃逸和任意命令漏洞(CVE-2022-0492)
漏洞存在于Linux內核control groups組件的cgroups的v1版本,該組件用來實現將進程劃分成組,并進行CPU、內存、磁盤IO、網絡等資源限制?,F代容器(docker)廣泛依賴cgroups的特性實現。
(1) 漏洞說明
CVE-2022-0492的主要是因為對release_agent文件的進程是否具有管理權限(即 CAP_SYS_ADMIN 功能)未進行檢查導致。攻擊者可以通過release_agent強制內核以提升的權限調用選擇的二進制文件并接管機器。由于release_agent 文件的所有者設置為root,該漏洞的利用需要具有“root”權限的進程才能寫入文件,因此, 該漏洞僅允許root進程提升權限。運行 AppArmor或SELinux安全系統的容器不受影響。
(2) 危害等級
高危(CVSS 評分7.0)
(3) 影響范圍
所有運行Root權限運行docker容器的宿主機都受漏洞影響。包括CentOS 8,centOS7和centOS 6。
(4) 修復和緩解建議
將Linux最新內核升級版本。
排查以root權限啟動的容器,以非權限賬號啟動。
- 啟用 AppArmor 或 SELinux。
- 啟用 Seccomp。
DirtyPipe本地權限提升漏洞 (CVE-2022-0847)
日Linux內核中的一個權限提升漏洞(CVE-2022-0847,簡稱“Dirty Pipe”),利用該漏洞普通允用戶可以通過注入和覆蓋任意只讀文件中的數據進行權限提升并獲得root權限。漏洞存在于Linux Kernel 5.8及更高版本的內核。目前該漏洞的PoC/EXP已經發布,可以被直接利用。
(1) 漏洞說明
CVE-2022-0847存在于Linux內核5.8及之后版本中的本地提權漏洞。攻擊者通過利用此漏洞,可覆蓋重寫任意可讀文件中的數據,從而可將普通權限的用戶提升到特權root。由于其利用原理類似于臟牛漏洞(Dirty Cow,CVE-2016-5195),但更容易被利用,該漏洞被命名為“Dirty Pipe”。
(2) 危害等級
高危(CVSS 評分7.8)
(3) 影響范圍
- Linux Kernel版本 >= 5.8
- Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102
- CentOS 8默認內核版本受該漏洞影響
- CentOS 7及以下版本不受CentOS 8
可以具體通過以下命令排查范圍:
uname -a
查看當前使用的內核版本,如果該版本在大于5.8則需要更新內核版本到對應的 5.16.11/5.15.25/5.10.102。
(4) 修復建議
需要將Linux內核升級至以下安全版本:
- Linux 內核 >= 5.16.11
- Linux 內核 >= 5.15.25
- Linux 內核 >= 5.10.102