幾天前 有消息稱漏洞已被發現 (已在 CVE-2022-0185 下編目)和n 文件系統上下文 API 由提供 Linux內核 這可能允許本地用戶在系統上獲得 root 權限。
有人提到 問題是非特權用戶可以在隔離容器中獲得此類權限 如果系統上啟用了對用戶命名空間的支持。
例如,在 Ubuntu 和 Fedora 上默認啟用用戶命名空間,但在 Debian 和 RHEL 上未啟用(除非使用容器隔離平台)。 除了提權之外,如果容器具有 CAP_SYS_ADMIN 權限,該漏洞還可以用於突破隔離容器。
脆弱性 存在於 VFS 的函數 legacy_parse_param() 中 並且是由於對不支持文件系統上下文 API 的文件系統上提供的參數的最大大小缺乏適當的驗證。
最近我和 CTF Crusaders of Rust 團隊的幾個朋友遇到了 0-day Linux 內核堆溢出。 我們通過對 syzkaller 進行模糊測試發現了該漏洞,並迅速將其開發為 Ubuntu LPE 漏洞利用程序。 然後我們重寫了它以逃避和根植谷歌強化的 Kubernetes CTF 基礎設施。 此錯誤影響自 5.1 以來的所有內核版本(5.16 目前正在進行中)並已分配 CVE-2022-0185。 我們已經向 Linux 發行版和安全郵件列表報告了此問題,並且該錯誤已在本文發佈時得到修復。
傳遞過大的參數會導致溢出 用於計算正在寫入的數據大小的整數變量; 該代碼有一個“if (len > PAGE_SIZE - 2 - size)”緩衝區溢出檢查,如果大小值大於 4094,由於整數溢出下限(整數溢出,當轉換 4096 – 2 – 4095 到無符號整數,得到 2147483648)。
此錯誤允許在訪問特製 FS 映像時, 導致緩衝區溢出並覆蓋分配的內存區域之後的內核數據。 要利用該漏洞,需要CAP_SYS_ADMIN權限,即管理員權限。
到 2022 年,我們的隊友下定決心要找到 0 年的第 2022 天。我們不太確定如何開始,但由於我們的團隊對 Linux 內核漏洞非常熟悉,所以我們決定只購買一些專用服務器。 並運行 Google 的 syzkaller fuzzer。 太平洋標準時間 6 月 22 日晚上 30:0,chop6 在 legacy_parse_param 中收到以下 KASAN 故障報告:slab-out-of-bounds Write in legacy_parse_param。 看來syzbot在fuzzing Android時才XNUMX天前發現了這個問題,但問題沒有得到處理,我們天真地以為沒有其他人注意到。
最後,值得一提的是,這個問題從 Linux 內核版本 5.1 開始就已經顯現出來,並且在幾天前發布的 5.16.2、5.15.16、5.10.93、5.4.173 版本的更新中得到了解決。
除此之外 漏洞包更新已經發布 為 RHEL, Debian, 軟呢帽和 Ubuntu. 雖然該解決方案尚不可用 Arch Linux, Gentoo的, SUSE y openSUSE。
在這些情況下,提到作為不使用容器隔離的系統的安全解決方案,您可以將 sysctl "user.max_user_namespaces" 的值設置為 0:
發現問題的研究人員發表了 漏洞利用演示 que 允許以默認配置在 Ubuntu 20.04 上以 root 身份運行代碼。 計劃是 漏洞利用代碼在一周後發佈在 GitHub 上 該發行版發布了修復漏洞的更新。
終於 如果您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。
另一個不用棍子碰按扣的原因。