Ubuntu 16.04 ESM / 18.04 ESM / 20.04 LTS / 22.04 LTS : Go 弱點 (USN-6038-2)

critical Nessus Plugin ID 187743

概要

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

說明

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

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

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

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

- 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.10 之前版本和 1.18.2 之前的 1.18.x 版本中具有不正確的權限指派。使用非零旗標參數呼叫時,Faccessat 函式可能會錯誤報告檔案可供存取。
(CVE-2022-29526)

- 在 Go 1.17.11 之前版本和 1.18.3 版本中,crypto/tls 爲工作階段票證中的 ticket_age_add 使用非隨機值,因此,可觀察 TLS 交握的攻擊者能夠透過在工作階段恢復期間比較票證期限來關聯連續的連線。(CVE-2022-30629)

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

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,compress/gzip 的 Reader.Read 中存在不受控制的遞回弱點,攻擊者可藉此透過含有大量串連長度為 0 的壓縮檔案的封存造成堆疊耗盡,進而引致錯誤。(CVE-2022-30631)

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

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,encoding/xml 的 Unmarshal 中存在不受控制的遞回弱點,攻擊者可藉此透過將 XML 文件解組到具有使用「any」欄位標籤的巢狀欄位的 Go 結構中來造成堆疊耗盡,進而引致錯誤。(CVE-2022-30633)

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

- 在 Go 1.17.12 之前版本和 Go 1.18.4 版中,net/http 中存在不當暴露用戶端 IP 位址的弱點,藉由使用包含 nil 值的 Request.Header 對應爲 X-Forwarded-For 標頭呼叫 httputil.ReverseProxy.ServeHTTP 可以觸發此弱點,造成 ReverseProxy 將用戶端 IP 設定為 X-Forwarded-For 標頭的值。(CVE-2022-32148)

- 在 Go 1.17.13 之前版本和 1.18.5 版中,編碼訊息太短可造成 math/big 中的 Float.GobDecode 和 Rat GobDecode 發生錯誤,進而可能導致拒絕服務。(CVE-2022-32189)

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

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

- 若在 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)

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

解決方案

更新受影響的套件。

另請參閱

https://ubuntu.com/security/notices/USN-6038-2

Plugin 詳細資訊

嚴重性: Critical

ID: 187743

檔案名稱: ubuntu_USN-6038-2.nasl

版本: 1.1

類型: local

代理程式: unix

已發布: 2024/1/9

已更新: 2024/1/9

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

風險資訊

VPR

風險因素: Medium

分數: 6.7

CVSS v2

風險因素: Medium

基本分數: 5

時間分數: 3.9

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

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

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

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

弱點資訊

CPE: cpe:/o:canonical:ubuntu_linux:16.04:-:esm, cpe:/o:canonical:ubuntu_linux:18.04:-:esm, cpe:/o:canonical:ubuntu_linux:20.04:-:lts, cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:golang-1.13, p-cpe:/a:canonical:ubuntu_linux:golang-1.13-go, p-cpe:/a:canonical:ubuntu_linux:golang-1.13-src, p-cpe:/a:canonical:ubuntu_linux:golang-1.16, p-cpe:/a:canonical:ubuntu_linux:golang-1.16-go, p-cpe:/a:canonical:ubuntu_linux:golang-1.16-src

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

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2024/1/9

弱點發布日期: 2022/5/15

參考資訊

CVE: CVE-2022-1705, CVE-2022-27664, CVE-2022-28131, CVE-2022-2879, CVE-2022-2880, CVE-2022-29526, CVE-2022-30629, CVE-2022-30630, CVE-2022-30631, CVE-2022-30632, CVE-2022-30633, CVE-2022-30635, CVE-2022-32148, CVE-2022-32189, CVE-2022-41717, CVE-2023-24534, CVE-2023-24537, CVE-2023-24538

USN: 6038-2