Ubuntu 18.04 LTS / 20.04 LTS / 22.04 LTS:containerd 弱點 (USN-5776-1)

high Nessus Plugin ID 168653

概要

遠端 Ubuntu 主機缺少一個或多個安全性更新。

說明

遠端 Ubuntu 18.04 LTS/20.04 LTS/22.04 LTS/22.10 主機上安裝的套件受到 USN-5776-1 公告中所提及的多個弱點影響。

- containerd 是一種開放原始碼的容器執行階段。在 containerd 的 CRI 實作中發現一個錯誤,其中使用者可耗盡主機上的記憶體。在 CRI 串流伺服器中,如果要求 TTY,則會啟動一個 goroutine 來處理終端機調整大小事件。如果使用者的處理程序因為命令錯誤等原因而無法啟動,則 goroutine 將在沒有接收器的情況下等待傳送,進而導致記憶體洩漏。
Kubernetes 和 crictl 都可以設定為使用 containerd 的 CRI 實作,串流伺服器用於處理容器 IO。此錯誤已在 containerd 1.6.12 和 1.5.16 中修正。使用者應更新至這些版本以解決此問題。無法升級的使用者應確保僅使用受信任的影像和命令,且只有受信任的使用者才有權在執行中的容器中執行命令。 (CVE-2022-23471)

- Moby 是 Docker 建立的開放原始碼專案,可用於啟用並加速軟體容器化。在 20.10.14 版之前的 Moby (Docker Engine) 中發現一個錯誤,其中,容器以非空白的可繼承 Linux 處理程序功能啟動,進而建立非典型 Linux 環境,並使具有可繼承檔案功能的程式在執行期間將這些功能提升至允許的集合`execve(2)`。通常,當可執行程式已指定允許的檔案功能時,無權限的使用者和處理程序可執行這些程式並取得邊界集內的指定檔案功能。由於此錯誤,包含具有可繼承檔案功能的可執行程式的容器允許無權限的使用者和處理程序額外取得這些可繼承檔案功能,直到容器的邊界集為止。使用 Linux 使用者和群組在容器內執行權限分隔的容器會受到最直接的影響。這個錯誤不會影響容器安全沙箱,因為可繼承集包含的功能絕不會超過容器邊界集中包含的功能。此錯誤已在 Moby (Docker Engine) 20.10.14 中修正。您應終止、刪除並重新建立執行中的容器,以便重設可繼承功能。這項修正變更了 Moby (Docker Engine) 行為,使得容器在啟動時建立更典型的 Linux 環境。要想解決這個問題,可以透過修改容器入口點使用 `capsh(1)` 等公用程式,以便在主要處理程序啟動之前中斷可繼承功能。(CVE-2022-24769)

- imgcrypt 程式庫為 containerd 提供 API 延伸模組,以支援加密的容器影像,並實作 ctd-decoder 命令行工具,供 containerd 用來解密加密的容器影像。
imgcrypt 函式「CheckAuthorization」應該檢查目前使用的內容是否有權存取加密的影像,並防止使用者執行先前在相同系統上解密的影像。在 1.1.4之前的版本中,使用具有 ManifestList 的影像,且本機主機的架構不是 ManifestList 中的第一個架構時,會導致失敗。僅測試了清單中的第一個架構,由於該架構的層無法在主機架構上執行,因此該框架無法本機使用。因此,對於不可用的層的判斷是,預期在稍後會因為層不可用而發生影像執行失敗的情況下,可以執行影像。
但是,如果該影像之前已解密,則此允許影像執行的判定使得 ManifestList 中的其他架構無需提供金鑰即可執行該影像。修補程式已套用至 imgcrypt 1.1.4 版。因應措施可能包括針對每個遠端使用者使用不同的命名空間。
(CVE-2022-24778)

- containerd 是一種開放原始碼的容器執行階段。在 containerd 的 CRI 實作中發現一個錯誤,其中容器內的程式可造成 containerd 程序在「ExecSync」API 叫用期間無限制地消耗記憶體。從而導致 containerd 耗盡電腦上的所有可用記憶體,拒絕為其他合法工作負載提供服務。Kubernetes 和 crictl 都可以設定為使用 containerd 的 CRI 實作;執行探查或透過 exec 設施執行處理程序時,可使用 「ExecSync」。此錯誤已在 containerd 1.6.6 和 1.5.13 中修正。使用者應更新至這些版本以解決此問題。無法升級的使用者應確保只使用受信任的影像和命令。(CVE-2022-31030)

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼。

解決方案

更新受影響的 containerd 和/或 golang-github-containerd-containerd-dev 套件。

另請參閱

https://ubuntu.com/security/notices/USN-5776-1

Plugin 詳細資訊

嚴重性: High

ID: 168653

檔案名稱: ubuntu_USN-5776-1.nasl

版本: 1.5

類型: local

代理程式: unix

已發布: 2022/12/13

已更新: 2023/10/16

支援的感應器: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Nessus

風險資訊

VPR

風險因素: Medium

分數: 4.4

CVSS v2

風險因素: Medium

基本分數: 5

時間分數: 3.9

媒介: CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N

CVSS 評分資料來源: CVE-2022-24778

CVSS v3

風險因素: High

基本分數: 7.5

時間分數: 6.7

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

時間媒介: CVSS:3.0/E:P/RL:O/RC:C

弱點資訊

CPE: cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:containerd, cpe:/o:canonical:ubuntu_linux:18.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:golang-github-containerd-containerd-dev, cpe:/o:canonical:ubuntu_linux:20.04:-:lts

必要的 KB 項目: Host/cpu, Host/Ubuntu, Host/Ubuntu/release, Host/Debian/dpkg-l

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2022/12/13

弱點發布日期: 2022/3/24

參考資訊

CVE: CVE-2022-23471, CVE-2022-24769, CVE-2022-24778, CVE-2022-31030

USN: 5776-1