Amazon Linux 2023:curl、curl-minimal、libcurl (ALAS2023-2023-083)

critical Nessus Plugin ID 173171

概要

遠端 Amazon Linux 2023 主機缺少一個安全性更新。

說明

因此,它受到 ALAS2023-2023-083 公告中所提及的多個弱點影響。

- curl 7.33.0 至 7.82.0 (含) 版本中有不當驗證弱點,可能允許在未正確確定已使用為此傳輸設定的相同憑證來驗證連線的情況下,重複使用 OAUTH2 驗證的代理伺服器連線。此弱點會影響已啟用 SASL 的通訊協定:SMPTP(S)、IMAP(S)、POP3(S) 和 LDAP(S) (僅限 openldap)。(CVE-2022-22576)

- curl 4.9 至 7.82.0 版 (含) 存在憑證保護不足弱點,允許攻擊者在遵循身份驗證中結合使用的 HTTP(S) 重新導向時擷取憑證,將憑證洩漏給不同通訊協定或連接埠號碼上的其他服務。
(CVE-2022-27774)

- curl 7.65.0 至 7.82.0 中存在資訊洩漏弱點,在使用連線集區中具有不同區域 ID 的 IPv6 位址時,它可能會改為重複使用連線。(CVE-2022-27775)

- curl 7.83.0 中修正的憑證保護不足弱點可能會在 HTTP 重新導向至相同主機不同連接埠號碼時洩漏驗證或 Cookie 標頭資料。(CVE-2022-27776)

- 如果主機名稱以一個點結尾,libcurl 會錯誤地允許為頂層網域 (TLD) 設定 cookie。可以指示 curl 接收和傳送 cookie。構建 curl 的 cookie 引擎時,可以使用 [公開後置詞清單],也可以不使用 (https://publicsuffix.org/)awareness。如果未提供 PSL 支援,則需要基本檢查,以至少防止在 TLD 上設定 cookie。如果 URL 中的主機名稱以一個點結尾,此檢查會被中斷。這可造成任意網站皆可設定 cookie,然後傳送至不同且不相關的網站或網域。(CVE-2022-27779)

- 解碼 URL 的主機名稱部分時,curl URL 剖析器會錯誤地接受以百分號編碼的 URL 分隔符號 (如「/」),從而使其在以後擷取時成為使用錯誤主機名稱的 *不同* URL。例如,剖析器會允許諸如 `http://example.com%2F127.0.0.1/` 的 URL 並將其轉置為 `http://example.com/127.0.0.1/`。攻擊者可利用此瑕疵規避篩選、檢查等。
(CVE-2022-27780)

- libcurl 提供「CURLOPT_CERTINFO」選項,允許應用程式要求傳回有關伺服器憑證鏈的詳細資料。由於有錯誤的函式,惡意伺服器可造成使用 NSS 構建的 libcurl 在嘗試擷取該資訊時陷入無止境的忙碌迴圈。
(CVE-2022-27781)

- 即使已變更 TLS 或 SSH 相關選項,libcurl 仍會重複使用之前建立的連線,而這些連線本應禁止重複使用。若其中一個連線符合設定,libcurl 會將之前使用過的連線保留在連線集區中,以備後續傳送重複使用。但是,組態比對檢查會遺漏數個 TLS 和 SSH 設定,這使匹配變得非常容易。(CVE-2022-27782)

- 若使用 HSTS 支援,即使已在 URL 中提供 HTTP,仍可指示 curl 直接使用 HTTPS,而不使用不安全的純文字 HTTP 步驟。如果在指定的 URL 中,主機名稱使用了尾隨點,但在構建 HSTS 快取時未使用,則可繞過此機制。或者相反
- 在 HSTS 快取中使用了尾隨點,但在 URL 中*未*使用尾隨點。
(CVE-2022-30115)

- 惡意伺服器可在 HTTP 回應中提供過量的「Set-Cookie:」標頭,使得 curl 7.84.0 及更低版本儲存所有標頭。數量足夠多 (大) 的 Cookie 會向此伺服器或與這些 Cookie 相符的其他伺服器發出後續 HTTP 要求,從而使建立的要求超過 curl 爲避免傳送過大要求 (1048576 位元組) 而在內部使用的閾值,而沒有傳回錯誤。只要保留和符合這些 Cookie 並且它們未過期,此拒絕狀態就可能持續存在。由於 Cookie 比對規則,「foo.example.com」上的伺服器可設定與「bar.example.com」相符的 Cookie,從而使同級伺服器可以有效造成相同二級網域上使用此方法的同級網站拒絕服務。(CVE-2022-32205)

- curl 7.84.0 之前版本支援鏈結式 HTTP 壓縮演算法,這表示伺服器回應可被壓縮多次,並且可能使用不同的演算法。此解壓縮鏈中可接受的連結數不受限制,因此惡意伺服器可以插入幾乎不限數量的壓縮步驟。使用此類解壓縮鏈可導致 malloc 炸彈,使 curl 最終佔用大量已配置的堆積記憶體,或嘗試並傳回記憶體不足錯誤。(CVE-2022-32206)

- curl 7.84.0 之前版本將 cookie、alt-svc 和 hsts 資料儲存到本機檔案時,會透過將暫存名稱重新命名為最終目標檔案名稱來完成作業,從而使此作業成爲原子型作業。在此重新命名作業中,它可能會意外*放寬*針對目標檔案的權限,讓更多使用者可存取更新後的檔案。 (CVE-2022-32207)

- curl 7.84.0 之前版本在執行受 krb5 保護的 FTP 傳輸時,會錯誤處理訊息驗證失敗。
攻擊者可利用此缺陷執行攔截式攻擊而不被察覺,甚至可以向用戶端插入資料。(CVE-2022-32208)

- 進行 HTTP(S) 傳輸時,如果之前曾使用相同的控點發出使用讀取回呼 (「CURLOPT_READFUNCTION」) 的「PUT」要求,則 libcurl 可能會錯誤地使用此回呼來要求要傳送的資料,即使已經設定「CURLOPT_POSTFIELDS」選項亦如此。此缺陷可能會使應用程式意外產生錯誤行為,並在後續的「POST」要求中傳送錯誤資料或使用釋放後的記憶體,或發生類似情況。從 PUT 變更為 POST 時,重複使用的控點邏輯中存在此問題。(CVE-2022-32221)

- 使用 curl 從 HTTP(S) 伺服器擷取和剖析 cookie 時,它會接受使用控製程式碼的 cookie,稍後將這些 cookie 傳回 HTTP 伺服器時,可能會使伺服器傳回 400 回應。
有效地允許協助網站拒絕對所有同級網站的服務。(CVE-2022-35252)

- 可指示 curl 剖析憑證的「.netrc」檔案。如果該檔案以包含 4095 個連續的非空白字母的行結尾且無新行,curl 會先讀取超出堆疊型緩衝區結尾的範圍,如果是 readworks,則寫入超出其邊界的零位元組。在大多數情況下,這會造成區段錯誤或類似問題,但也可能會造成不同的結果。如果惡意使用者可向應用程式提供自訂 netrc 檔案,或以其他方式影響其內容,則可利用此缺陷引致拒絕服務。(CVE-2022-35260)

- curl 7.86.0 之前版本存在重複釋放問題。如果要求 curl 使用 HTTP Proxy 進行包含非 HTTP(S) URL 的傳輸,它會透過向 Proxy 發出 CONNECT 要求來設定與遠端伺服器的連線,然後讓其餘通訊協定通過。HTTP Proxy 可能會拒絕此要求 (HTTP Proxy 通常只允許至特定連接埠號碼的傳出連線,例如 HTTPS 的 443),而是將非 200 狀態碼傳回給用戶端。由於錯誤/清理處理中存在錯誤,如果在傳輸的 URL 中使用下列配置之一,這可在 curl 中觸發重複釋放:dict、gopher、gophers、ldap、ldaps、rtmp、rtmps 或 telnet。最早的受影響版本是 7.77.0。(CVE-2022-42915)

- 在 curl 7.86.0 之前版本中,使用者可以繞過 HSTS 檢查以誘騙其繼續使用 HTTP。若使用 HSTS 支援,即使已在 URL 中提供 HTTP,仍可指示 curl 直接使用 HTTPS (而不使用不安全的純文字 HTTP 步驟)。如果指定 URL 中的主機名稱使用在 IDN 轉換過程中被 ASCII 對應項取代的 IDN 字元,則可繞過此機制,例如,使用字元 UTF-8 U+3002 (IDEOGRAPHIC FULL STOP),而非常見的 ASCII U+002E 的句號 (.)。
最早的受影響版本是 7.77.0 2021-05-26。(CVE-2022-42916)

- curl <7.87.0 HSTS 檢查中存在弱點,攻擊者可繞過檢查以誘騙其繼續使用 HTTP。
若使用 HSTS 支援,即使已在 URL 中提供 HTTP,仍可指示 curl 使用 HTTPS,而不使用不安全的純文字 HTTP 步驟。但是,如果給定 URL 中的主機名稱首先使用 IDN 轉換過程中被取代為 ASCII 對應項的 IDN 字元,則可能繞過 HSTS 機制。如同使用 UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) 字元,而非一般的 ASCII 句號 (U+002E)「.」。然後在後續要求中,它不會偵測 HSTS 狀態並進行純文字傳輸。因為它會儲存以 IDN 編碼的資訊,但尋找以 IDN 解碼的資訊。(CVE-2022-43551)

- 低於 7.87.0 版的 curl 中存在一個釋放後使用弱點。可以要求 Curl 透過 HTTP Proxy 為其支援的所有通訊協定*建立通道*。HTTP Proxy 可以 (而且經常) 拒絕此類通道作業。
當特定通訊協定 SMB 或 TELNET 被拒絕時,curl 會在其傳輸關閉程式碼路徑中使用堆積配置結構。(CVE-2022-43552)

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

解決方案

執行「dnf update curl --releasever=2023.0.20230222」以更新系統。

另請參閱

https://alas.aws.amazon.com/AL2023/ALAS-2023-083.html

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Plugin 詳細資訊

嚴重性: Critical

ID: 173171

檔案名稱: al2023_ALAS2023-2023-083.nasl

版本: 1.6

類型: local

代理程式: unix

已發布: 2023/3/21

已更新: 2024/2/20

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

風險資訊

VPR

風險因素: Medium

分數: 6.7

CVSS v2

風險因素: High

基本分數: 7.5

時間分數: 5.9

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

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

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-2022-32221

弱點資訊

CPE: p-cpe:/a:amazon:linux:libcurl-devel, p-cpe:/a:amazon:linux:curl-debuginfo, p-cpe:/a:amazon:linux:curl-debugsource, p-cpe:/a:amazon:linux:curl-minimal, p-cpe:/a:amazon:linux:curl-minimal-debuginfo, p-cpe:/a:amazon:linux:libcurl-debuginfo, p-cpe:/a:amazon:linux:libcurl-minimal-debuginfo, p-cpe:/a:amazon:linux:libcurl-minimal, p-cpe:/a:amazon:linux:curl, cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:libcurl

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

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2023/2/17

弱點發布日期: 2022/4/28

參考資訊

CVE: CVE-2022-22576, CVE-2022-27774, CVE-2022-27775, CVE-2022-27776, CVE-2022-27779, CVE-2022-27780, CVE-2022-27781, CVE-2022-27782, CVE-2022-30115, CVE-2022-32205, CVE-2022-32206, CVE-2022-32207, CVE-2022-32208, CVE-2022-32221, CVE-2022-35252, CVE-2022-35260, CVE-2022-42915, CVE-2022-42916, CVE-2022-43551, CVE-2022-43552

IAVA: 2022-A-0224-S, 2022-A-0255-S, 2022-A-0350-S, 2022-A-0451-S, 2023-A-0008-S