RHEL 8:container-tools:4.0 (RHSA-2023: 6938)

critical Nessus Plugin ID 185685

概要

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

說明

遠端 Redhat Enterprise Linux 8 主機上安裝的套件受到 RHSA-2023: 6938 公告中提及的多個弱點影響。

- 剖析惡意或大型 YAML 文件會消耗過量的 CPU 或記憶體。(CVE-2022-3064)

- 惡意特製的 HTTP/2 串流可造成 HPACK 解碼器中發生 CPU 過度佔用問題,透過少量小型要求即可造成程式拒絕服務。(CVE-2022-41723)

- 大量交握記錄可造成 crypto/tls 發生錯誤。用戶端和伺服器都可能傳送大量 TLS 交握記錄,這會分別造成伺服器和用戶端在嘗試建構回應時發生錯誤。此問題會影響所有 TLS 1.3 用戶端、明確啟用工作階段恢復的 TLS 1.2 用戶端 (透過將 Config.ClientSessionCache 設為非 nil 值),以及要求用戶端憑證的 TLS 1.3 伺服器 (透過設定 Config.ClientAuth >= RequestClientCert) 。(CVE-2022-41724)

- net/http 和 mime/multipart 中可能存在因資源消耗過度導致的拒絕服務問題。
使用 mime/multipart.Reader.ReadForm 剖析 Multipart 表單時,可能會大量消耗無限量的記憶體和磁碟檔案。這也會影響 net/http 套件中使用 Request 方法 FormFile、FormValue、ParseMultipartForm 和 PostFormValue 剖析表單的情況。ReadForm 採用 maxMemory 參數,並記錄為在記憶體中最多儲存 maxMemory 位元組 +10MB (為非檔案部分保留的空間)。無法儲存在記憶體中的檔案部分會儲存在磁碟上的暫存檔中。為非檔案部分保留的無法設定的 10MB 過大,可能會自行開啟拒絕服務媒介。但是,ReadForm 並未正確考量已剖析表單消耗的所有記憶體,例如對應項目額外負荷、部分名稱和 MIME 標頭,這允許惡意製作的表單消耗記憶體容量超過 10MB。此外,ReadForm 對建立的磁碟檔案數量沒有限制,允許相對較小的要求內文建立大量的磁碟暫存檔。修正後,ReadForm 現在會正確考量各種形式的記憶體額外負荷,並且現在應保持在其記錄的 10MB + maxMemory 位元組記憶體消耗範圍內。使用者仍應注意,此限制較高且可能仍然存在危險。此外,ReadForm 現在最多可建立一個磁碟上暫存檔,將多個表單部分合併為一個暫存檔。mime/multipart.File 介面類型的文件指出,如果儲存在磁碟上,檔案的基礎具體類型將為 *os.File.。如果表單包含多個檔案部分,則因為要將部分合併到一個檔案中,所以情況不再如此。之前針對每個表單部分使用不同檔案的行為,可透過環境變數 GODEBUG=multipartfiles=distinct 重新啟用。使用者應注意,multipart.ReadForm 和呼叫它的 http.Request 方法不會限制暫存檔消耗的磁碟量。呼叫者可使用 http.MaxBytesReader 限製表單資料的大小。(CVE-2022-41725)

- 即使在剖析小輸入時,HTTP 和 MIME 標頭剖析仍可配置大量記憶體,進而可能導致拒絕服務。輸入資料的某些異常模式可造成用於剖析 HTTP 和 MIME 標頭的通用函式配置比保留已剖析標頭所需的更多的記憶體。攻擊者可惡意利用此行為,造成 HTTP 伺服器從小型要求配置大量記憶體,進而可能導致記憶體耗盡和拒絕服務。
經過修正,標頭剖析現在只會正確配置保留已剖析標頭所需的記憶體。
(CVE-2023-24534)

- 處理含有極大量部分的表單輸入時,多部分表單剖析會消耗大量 CPU 和記憶體。這源於數個原因:1. mime/multipart.Reader.ReadForm 限制已剖析的多部分錶單可消耗的總記憶體。ReadForm 可低估消耗的記憶體量,導致其接受比預期更大的輸入。2. 限制總記憶體並未將具有許多部分的表單中的大量小配置對記憶體回收行程增加的壓力考慮在內。3.
ReadForm 可配置大量存留期短的緩衝區,進一步增加記憶體回收行程的壓力。這些因素結合在一起,可允許攻擊者造成剖析多部分錶單的程式消耗大量 CPU 和記憶體,進而可能導致拒絕服務。
這會影響使用 mime/multipart.Reader.ReadForm 的程式,以及具有 Request 方法 FormFile、FormValue、ParseMultipartForm 和 PostFormValue 的 net/http 套件中的表單剖析。經過修正,ReadForm 現在可以更好地估計已剖析表單的記憶體消耗,並減少執行短期配置。此外,已修正的 mime/multipart.Reader 對剖析表單的大小進行了下列限制:1. 使用 ReadForm 剖析的表單最多可包含 1000 個部分。此限制可使用環境變數 GODEBUG=multipartmaxparts= 進行調整。 2. 使用 NextPart 和 NextRawPart 剖析的表單部分包含的標頭欄位不得超過 10,000。此外,使用 ReadForm 剖析的表單在所有部分中包含的標題欄位不得超過 10,000 個。此限制可使用環境變數 GODEBUG=multipartmaxheaders= 進行調整。(CVE-2023-24536)

- 若在 Go 原始程式碼上呼叫含有非常大行數的 //line 指示詞的任何剖析函式,可因整數溢位而造成無限迴圈。(CVE-2023-24537)

- 範本未正確將反引號 (`) 視為 Javascript 字串分隔符號,也未如預期對其進行逸出。自 ES6 起,JS 範本常值使用反引號。如果範本在 Javascript 範本常值中包含 Go 範本動作,則可使用動作內容終止該常值,從而將任意 Javascript 程式碼插入 Go 範本。由於 ES6 範本常值相當複雜,而且本身可以進行字串插入,因此決定簡單地禁止在其中使用 Go 範本動作 (例如 var a = {{.}}),因為此行為沒有明確可行的安全方法。這與 github.com/google/safehtml 所採用的方法相同。經過修正,Template.Parse 在遇到此類範本時會傳回 ErrorCode 值為 12 的錯誤。此 ErrorCode 目前未匯出,但將在 Go 1.21 版中匯出。依賴先前行為的使用者可使用 GODEBUG 旗標 jstmpllitinterp=1 重新執行該行為,但需要注意的是現在將逸出反引號。應謹慎使用。(CVE-2023-24538)

- 插入 CSS 內容時,不將尖括號 (<>) 視為危險字元。如果使用未受信任的輸入執行範本,包含多個以「/」字元分隔的動作的範本可導致非預期地關閉 CSS 內容並允許插入非預期的 HTML。(CVE-2023-24539)

- 並非所有有效的 JavaScript 空白字元都被視為空白字元。在 JavaScript 內容中,在字元集 \t\n\f\r\u0020\u2028\u2029 之外,包含其他空白字元和動作的範本可能無法在執行期間正確清理。(CVE-2023-24540)

- runc 是一種 CLI 工具,用於根據 OCI 規範產生並執行容器。據發現,在受影響的版本中,rootless runc 使「/sys/fs/cgroup」在下列情況下可寫入:1. 在使用者命名空間內執行 runc,且「config.json」未指定取消共用的 cgroup 命名空間時 (例如,「(docker|podman|nerdctl) run --cgroupns=host」,使用 Rootless Docker/ Podman/nerdctl) 或 2. 在使用者命名空間之外執行 runc,且「/sys」掛載了「rbind, ro」(例如「runc spec --rootless」;此情形非常罕見)。容器可取得主機上使用者擁有的 cgroup 階層「/sys/fs/cgroup/user.slice/...」的寫入存取權。其他使用者的 cgroup 階層不受影響。
建議使用者升級至 1.1.5 版。無法升級的使用者可能取消共用 cgroup 命名空間 (「(docker|podman|nerdctl) run --cgroupns=private)」。這是 cgroup v2 主機上 Docker/Podman/nerdctl 的預設行為。或新增「/sys/fs/cgroup」至「maskedPaths」。(CVE-2023-25809)

- 1.1.4 及之前的 runc 版本含有可導致權限提升的錯誤存取控制,此問題與 libcontainer/rootfs_linux.go 有關。若要利用此問題,攻擊者必須能夠生成兩個具有自訂 volume-mount 組態的容器,並且能夠執行自訂影像。注意:此問題之所以存在,是因為 CVE-2019-19921 迴歸造成。(CVE-2023-27561)

- runc 是一種 CLI 工具,用於根據 OCI 規範產生並執行容器。據發現,當容器內的「/proc」與特定掛載組態進行符號連結時,可繞過 AppArmor。此問題已在 runc 版本 1.1.5 中修正,方法是禁止符號連結「/proc」。詳細資訊請查看 PR #3785。我們建議使用者進行升級。無法升級的使用者應避免使用不受信任的容器映像。(CVE-2023-28642)

- 範本包含以空白輸入執行的未加引號的 HTML 屬性 (例如 attr={{.}}) 中的操作,這可能會因為 HTML 正規化規則而導致在剖析時產生未預期的結果。這可能允許在標籤中插入任意屬性。(CVE-2023-29400)

- HTTP/1 用戶端未完整驗證 Host 標頭的內容。惡意特製的主機標頭可插入其他標頭或整個要求。修正後,HTTP/1 用戶端現在會拒絕傳送包含無效 Request.Host 或 Request.URL.Host 值的要求。(CVE-2023-29406)

- 不在 HTML 命名空間中的文字節點未被正確地逐字轉譯,導致本應逸出的文字並未正確轉譯。這可導致 XSS 攻擊。(CVE-2023-3978)

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

解決方案

更新受影響的套件。

另請參閱

http://www.nessus.org/u?819248f8

http://www.nessus.org/u?b8984f46

https://access.redhat.com/security/updates/classification/#moderate

https://access.redhat.com/errata/RHSA-2023:6938

https://bugzilla.redhat.com/show_bug.cgi?id=2163037

https://bugzilla.redhat.com/show_bug.cgi?id=2165743

https://bugzilla.redhat.com/show_bug.cgi?id=2175721

https://bugzilla.redhat.com/show_bug.cgi?id=2178358

https://bugzilla.redhat.com/show_bug.cgi?id=2178488

https://bugzilla.redhat.com/show_bug.cgi?id=2178492

https://bugzilla.redhat.com/show_bug.cgi?id=2182883

https://bugzilla.redhat.com/show_bug.cgi?id=2182884

https://bugzilla.redhat.com/show_bug.cgi?id=2184481

https://bugzilla.redhat.com/show_bug.cgi?id=2184482

https://bugzilla.redhat.com/show_bug.cgi?id=2184483

https://bugzilla.redhat.com/show_bug.cgi?id=2184484

https://bugzilla.redhat.com/show_bug.cgi?id=2196026

https://bugzilla.redhat.com/show_bug.cgi?id=2196027

https://bugzilla.redhat.com/show_bug.cgi?id=2196029

https://bugzilla.redhat.com/show_bug.cgi?id=2222167

https://bugzilla.redhat.com/show_bug.cgi?id=2228689

https://bugzilla.redhat.com/show_bug.cgi?id=2231464

Plugin 詳細資訊

嚴重性: Critical

ID: 185685

檔案名稱: redhat-RHSA-2023-6938.nasl

版本: 1.1

類型: local

代理程式: unix

已發布: 2023/11/14

已更新: 2024/4/28

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

風險資訊

VPR

風險因素: Medium

分數: 6.7

CVSS v2

風險因素: Critical

基本分數: 10

時間分數: 7.8

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

CVSS 評分資料來源: CVE-2023-24540

CVSS v3

風險因素: Critical

基本分數: 9.8

時間分數: 8.8

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

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

弱點資訊

CPE: cpe:/o:redhat:enterprise_linux:8, p-cpe:/a:redhat:enterprise_linux:aardvark-dns, p-cpe:/a:redhat:enterprise_linux:buildah, p-cpe:/a:redhat:enterprise_linux:buildah-tests, p-cpe:/a:redhat:enterprise_linux:cockpit-podman, p-cpe:/a:redhat:enterprise_linux:conmon, p-cpe:/a:redhat:enterprise_linux:container-selinux, p-cpe:/a:redhat:enterprise_linux:containernetworking-plugins, p-cpe:/a:redhat:enterprise_linux:containers-common, p-cpe:/a:redhat:enterprise_linux:crit, p-cpe:/a:redhat:enterprise_linux:criu, p-cpe:/a:redhat:enterprise_linux:criu-devel, p-cpe:/a:redhat:enterprise_linux:criu-libs, p-cpe:/a:redhat:enterprise_linux:crun, p-cpe:/a:redhat:enterprise_linux:fuse-overlayfs, p-cpe:/a:redhat:enterprise_linux:libslirp, p-cpe:/a:redhat:enterprise_linux:libslirp-devel, p-cpe:/a:redhat:enterprise_linux:netavark, p-cpe:/a:redhat:enterprise_linux:oci-seccomp-bpf-hook, p-cpe:/a:redhat:enterprise_linux:podman, p-cpe:/a:redhat:enterprise_linux:podman-catatonit, p-cpe:/a:redhat:enterprise_linux:podman-docker, p-cpe:/a:redhat:enterprise_linux:podman-gvproxy, p-cpe:/a:redhat:enterprise_linux:podman-plugins, p-cpe:/a:redhat:enterprise_linux:podman-remote, p-cpe:/a:redhat:enterprise_linux:podman-tests, p-cpe:/a:redhat:enterprise_linux:python-podman, p-cpe:/a:redhat:enterprise_linux:python3-criu, p-cpe:/a:redhat:enterprise_linux:python3-podman, p-cpe:/a:redhat:enterprise_linux:runc, p-cpe:/a:redhat:enterprise_linux:skopeo, p-cpe:/a:redhat:enterprise_linux:skopeo-tests, p-cpe:/a:redhat:enterprise_linux:slirp4netns, p-cpe:/a:redhat:enterprise_linux:toolbox, p-cpe:/a:redhat:enterprise_linux:toolbox-tests, p-cpe:/a:redhat:enterprise_linux:udica

必要的 KB 項目: Host/local_checks_enabled, Host/RedHat/release, Host/RedHat/rpm-list, Host/cpu

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2023/11/14

弱點發布日期: 2022/12/27

參考資訊

CVE: CVE-2022-3064, CVE-2022-41723, CVE-2022-41724, CVE-2022-41725, CVE-2023-24534, CVE-2023-24536, CVE-2023-24537, CVE-2023-24538, CVE-2023-24539, CVE-2023-24540, CVE-2023-25809, CVE-2023-27561, CVE-2023-28642, CVE-2023-29400, CVE-2023-29406, CVE-2023-3978

CWE: 113, 176, 276, 305, 400, 41, 79, 835, 94

RHSA: 2023:6938