Amazon Linux 2:golang (ALASGOLANG1.19-2023-002)

critical Nessus Plugin ID 182007

概要

遠端 Amazon Linux 2 主機缺少安全性更新。

說明

遠端主機上安裝的 golang 版本早於 1.19.6-1。因此,會受到 ALAS2GOLANG1.19-2023-002 公告中所提及的多個弱點影響。

- 在早於 1.16.10 版的 Go 和早於 1.17.x 版的 Go 1.17.3 中,debug/macho (針對 Open 或 OpenFat) 中的 ImportedSymbols 會存取緩衝區結尾後的記憶體位置,此情形亦即「超出邊界分割」。
(CVE-2021-41771)

- 由於在檔案描述符號耗儘後錯誤關閉檔案描述符號 0,因此 UNIX 上早於 1.16.12 的 Go 版本和早於 1.17.x 的 Go 1.17.5 版本允許寫入非預定檔案或非預定網路連線。(CVE-2021-44717)

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,net/http 中的 HTTP/1 用戶端會接受某些無效的 Transfer-Encoding 標頭,如果配合使用的中繼伺服器與也未正確拒絕此無效標頭,則可以觸發 HTTP 要求走私攻擊。(CVE-2022-1705)

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,go/parser 中的 Parse 函式存在不受控制的遞回弱點,攻擊者可藉此透過深度巢狀類型或宣告造成堆疊耗盡,進而引致錯誤。(CVE-2022-1962)

- 在 Go 1.16.14 之前版本和 Go 1.17.x 至 1.17.7 版本中,math/big 的 Rat.SetString 內有溢位問題,可能導致不受控制的記憶體消耗。(CVE-2022-23772)

- 在 Go 1.16.14 之前版本和 1.17.x 至 1.17.7 版本中,cmd/go 會錯誤地將分支名稱解釋為版本標籤。如果執行者能夠建立分支,但不能建立標籤,此弱點有可能會導致不正確的存取控制問題。(CVE-2022-23773)

- 在 Go 1.16.14 之前版本和 Go 1.17.x 至 1.17.7 版本中,crypto/elliptic 內的 Curve.IsOnCurve 在 big.Int 值不是有效欄位元素的情況下,可能會不正確地傳回 true。(CVE-2022-23806)

- 在 Go 1.17.9 之前版本以及 1.18.x 的 1.18.1 之前版本中,encoding/pem 允許透過大量 PEM 資料造成解碼堆疊溢位問題。(CVE-2022-24675)

- 在 Go 1.18.6 之前版本和 1.19.1 之前的 1.19.x 版中,攻擊者可在 net/http 中造成拒絕服務,這是因爲如果嚴重錯誤先於關機操作執行,則 HTTP/2 連線可能在關閉期間懸置。(CVE-2022-27664)

- 在 Go 1.17.9 之前版本以及 1.18.x 的 1.18.1 之前版本中,crypto/elliptic 的一般 P-256 特徵允許透過長純量輸入造成錯誤。(CVE-2022-28327)

- Reader.Read 未設定檔案標頭的大小上限。攻擊者可透過惡意特製的封存造成 Read 配置無限量的記憶體,這可能引致資源耗盡或錯誤。
修正後,Reader.Read 會將標頭區塊的大小上限限制為 1 MiB。(CVE-2022-2879)

- ReverseProxy 轉送的要求包含來自傳入要求的原始查詢參數,包括 net/http 拒絕的無法剖析的參數。當 Go Proxy 轉送具有無法剖析的值的參數時,可以觸發查詢參數走私。修正後,在 ReverseProxy 之後設定傳出要求的 Form 欄位時,ReverseProxy 會清理轉送的查詢中的查詢參數。Director 函式傳回,表示 Proxy 已剖析此查詢參數。不剖析查詢參數的 Proxy 會繼續原封不動地轉送原始查詢參數。(CVE-2022-2880)

- 在 Go 1.17.11 和 Go 1.18.3 之前版本中,os/exec 的 Cmd.Start 中存在程式碼插入弱點,允許在未設定 Cmd.Path 的情況下,透過呼叫 Cmd.Run、Cmd.Start、Cmd.Output 或 Cmd.CombinedOutput() 在名為 ..com 或 ..exe 的工作目錄中執行任何二進位檔。(CVE-2022-30580)

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,path/filepath 的 Glob 中存在不受控制的遞回弱點,攻擊者可藉此透過包含大量路徑分隔符號的路徑造成堆疊耗盡,進而引致錯誤。
(CVE-2022-30632)

- 在 Windows 系統中的 Go 1.17.11 和 Go 1.18.3 之前版本中, crypto/rand 的 Read 中存在無限迴圈弱點,允許攻擊者透過傳送大於 1 << 32 - 1 位元組的緩衝區造成無限期懸置。(CVE-2022-30634)

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,encoding/gob 的 Decoder.Decode 中存在不受控制的遞回弱點,攻擊者可藉此透過包含深度巢狀結構的訊息來造成堆疊耗盡,進而引致錯誤。
(CVE-2022-30635)

- 編譯來自非受信任來源的規則運算式的程式可能容易受到記憶體耗盡或拒絕服務攻擊。剖析的規則運算式的表示法與輸入的大小成線性關係,但在某些情況下,常數因子可高達 40,000,使得相對較小的 regexp 會消耗大量記憶體。修正後,將每個要剖析的規則運算式的記憶體佔用量都限制為 256 MB。如果表示法佔用的空間超過限制,此規則運算式會遭到拒絕。正常使用的規則運算式不受影響。(CVE-2022-41715)

- 攻擊者可在接受 HTTP/2 要求的 Go 伺服器中造成記憶體過度增長。HTTP/2 伺服器連線包含用戶端傳送的 HTTP 標頭金鑰快取。雖然此快取中的項目總數設有上限,但攻擊者如果傳送非常大的金鑰,即可造成伺服器為每個開啟的連線配置大約 64 MiB。(CVE-2022-41717)

- Windows 中的 filepath.Clean 存在路徑遊走弱點。在 Windows 中,filepath.Clean 函式可將無效路徑 (例如 a/../c: /b 轉換為有效路徑 c:\b。相對路徑 (若無效) 的這種轉換可觸發目錄遊走攻擊。修正之後,filepath.Clean 函式會將此路徑轉換為相對 (但仍無效的) 路徑。\c:\b。(CVE-2022-41722)

- 惡意特製的 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)

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

解決方案

執行「yum update golang」以更新系統。

另請參閱

https://alas.aws.amazon.com/AL2/ALASGOLANG1.19-2023-002.html

https://alas.aws.amazon.com/cve/html/CVE-2021-41771.html

https://alas.aws.amazon.com/cve/html/CVE-2021-44717.html

https://alas.aws.amazon.com/cve/html/CVE-2022-1705.html

https://alas.aws.amazon.com/cve/html/CVE-2022-1962.html

https://alas.aws.amazon.com/cve/html/CVE-2022-23772.html

https://alas.aws.amazon.com/cve/html/CVE-2022-23773.html

https://alas.aws.amazon.com/cve/html/CVE-2022-23806.html

https://alas.aws.amazon.com/cve/html/CVE-2022-24675.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27664.html

https://alas.aws.amazon.com/cve/html/CVE-2022-28327.html

https://alas.aws.amazon.com/cve/html/CVE-2022-2879.html

https://alas.aws.amazon.com/cve/html/CVE-2022-2880.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30580.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30632.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30634.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30635.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41715.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41717.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41722.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41723.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41724.html

https://alas.aws.amazon.com/cve/html/CVE-2022-41725.html

https://alas.aws.amazon.com/faqs.html

Plugin 詳細資訊

嚴重性: Critical

ID: 182007

檔案名稱: al2_ALASGOLANG1_19-2023-002.nasl

版本: 1.2

類型: local

代理程式: unix

已發布: 2023/9/27

已更新: 2023/10/2

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

風險資訊

VPR

風險因素: Medium

分數: 5.9

CVSS v2

風險因素: Medium

基本分數: 6.4

時間分數: 5

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

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

CVSS v3

風險因素: Critical

基本分數: 9.1

時間分數: 8.2

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

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

弱點資訊

CPE: p-cpe:/a:amazon:linux:golang, p-cpe:/a:amazon:linux:golang-bin, p-cpe:/a:amazon:linux:golang-docs, p-cpe:/a:amazon:linux:golang-misc, p-cpe:/a:amazon:linux:golang-race, p-cpe:/a:amazon:linux:golang-shared, p-cpe:/a:amazon:linux:golang-src, p-cpe:/a:amazon:linux:golang-tests, cpe:/o:amazon:linux:2

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

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2023/8/7

弱點發布日期: 2021/11/8

參考資訊

CVE: CVE-2021-41771, CVE-2021-44717, CVE-2022-1705, CVE-2022-1962, CVE-2022-23772, CVE-2022-23773, CVE-2022-23806, CVE-2022-24675, CVE-2022-27664, CVE-2022-28327, CVE-2022-2879, CVE-2022-2880, CVE-2022-30580, CVE-2022-30632, CVE-2022-30634, CVE-2022-30635, CVE-2022-41715, CVE-2022-41717, CVE-2022-41722, CVE-2022-41723, CVE-2022-41724, CVE-2022-41725

IAVB: 2022-B-0008-S, 2022-B-0025-S, 2022-B-0042-S, 2022-B-0059-S, 2023-B-0012-S