Debian DSA-5197-1:curl - 安全性更新

critical Nessus Plugin ID 163681

Synopsis

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

描述

遠端 Debian 11 主機上安裝的多個套件受到 dsa-5197 公告中提及的多個弱點影響。

- 當使用 `-t` 命令行選項 (在 libcurl 中稱為`CURLOPT_TELNETOPTIONS`) 傳送 variable=content 配對至 TELNET 伺服器時,curl 7.7 到 7.76.1 會受到資訊洩漏問題的影響。由於傳送 NEW_ENV 變數的選項剖析器中有一個缺陷,libcurl 可能會被用來將未初始化的資料從堆疊型緩衝區傳遞至伺服器,進而可能導致使用純文字網路通訊協定向伺服器洩漏敏感的內部資訊。(CVE-2021-22898)

- libcurl 會將先前使用的連線保留在連線集區中,以便在後續傳輸時重複使用其中符合設定的某個連線。由於邏輯中的錯誤,組態比對函式未將「issuercert」納入考量,因此會比較所涉及的路徑*案例不敏感地*,這可導致 libcurl 重複使用錯誤的連線。檔案路徑在許多系統上可能是或可能是區分大小寫的,但並非全部都區分大小寫,而且可能會根據所使用的檔案系統而有所不同。比較也未包含「issuer cert」其中,傳輸可設定為符合驗證伺服器憑證的方式。(CVE-2021-22924)

- 將資料傳送至 MQTT 伺服器時,libcurl <= 7.73.0 和 7.78.0 版在某些情況下可將指標錯誤地保留至已釋放的記憶體區域,並在後續呼叫中再次使用該指標來傳送資料,然後*再次*釋放 。(CVE-2021-22945)

- 與 IMAP、POP3 或 FTP 伺服器交談時,使用者可告知 curl >= 7.20.0 和 <= 7.78.0 以要求成功升級至 TLS (命令行上的 `--ssl-reqd` 或設為 `CURLUSESSL_CONTROL` 的 `CURLOPT_USE_SSL` 或 `CURLUSESSL_ALL` withlibcurl)。如果伺服器會傳回特製但完全合法的回應,則可繞過此要求。此缺陷會導致 curl 以無訊息模式繼續其作業
**沒有 TLS** 與指示和預期相反,可能透過網路以純文字洩漏敏感資料。(CVE-2021-22946)

- 當 curl >= 7.20.0 和 <= 7.78.0 連線至 IMAP 或 POP3 伺服器以擷取使用 STARTTLS 升級至 TLS 安全性的資料時,伺服器可回應並一次傳回 curl 快取的多個回應。
然後,curl 會升級至 TLS,但不會排清已快取回應的佇列,而是繼續使用並信任其在 TLS 交握*之前*收到的回應,如同這些回應已經通過驗證一般。藉此缺陷,中間攻擊者可先插入假的回應,然後從合法伺服器傳遞 TLS 流量,並誘騙 curl 將資料傳送回給認為攻擊者插入的資料來自受 TLS 保護之伺服器的使用者。(CVE-2021-22947)

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

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

- 惡意伺服器可在 HTTP 回應中提供過量的「Set-Cookie:」標頭,低於 7.84.0 版的 curl 會儲存所有這些標頭。數量足夠多 (大) 的 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)

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

解決方案

升級 curl 套件。

針對穩定的發行版本 (bullseye),已在 7.74.0-1.3+deb11u2 版本中修正這些問題。

另請參閱

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989228

https://security-tracker.debian.org/tracker/source-package/curl

https://www.debian.org/security/2022/dsa-5197

https://security-tracker.debian.org/tracker/CVE-2021-22898

https://security-tracker.debian.org/tracker/CVE-2021-22924

https://security-tracker.debian.org/tracker/CVE-2021-22945

https://security-tracker.debian.org/tracker/CVE-2021-22946

https://security-tracker.debian.org/tracker/CVE-2021-22947

https://security-tracker.debian.org/tracker/CVE-2022-22576

https://security-tracker.debian.org/tracker/CVE-2022-27774

https://security-tracker.debian.org/tracker/CVE-2022-27775

https://security-tracker.debian.org/tracker/CVE-2022-27776

https://security-tracker.debian.org/tracker/CVE-2022-27781

https://security-tracker.debian.org/tracker/CVE-2022-27782

https://security-tracker.debian.org/tracker/CVE-2022-32205

https://security-tracker.debian.org/tracker/CVE-2022-32206

https://security-tracker.debian.org/tracker/CVE-2022-32207

https://security-tracker.debian.org/tracker/CVE-2022-32208

https://packages.debian.org/source/bullseye/curl

Plugin 詳細資訊

嚴重性: Critical

ID: 163681

檔案名稱: debian_DSA-5197.nasl

版本: 1.4

類型: local

代理程式: unix

已發布: 2022/8/2

已更新: 2022/9/13

支持的傳感器: Agentless Assessment, Frictionless Assessment Agent, Nessus Agent

風險資訊

VPR

風險因素: High

分數: 7.4

CVSS v2

風險因素: High

基本分數: 7.5

時間分數: 5.5

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

時間媒介: E:U/RL:OF/RC:C

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

CVSS v3

風險因素: Critical

基本分數: 9.8

時間分數: 8.5

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

時間媒介: E:U/RL:O/RC:C

弱點資訊

CPE: p-cpe:/a:debian:debian_linux:curl, p-cpe:/a:debian:debian_linux:libcurl3-gnutls, p-cpe:/a:debian:debian_linux:libcurl3-nss, p-cpe:/a:debian:debian_linux:libcurl4, p-cpe:/a:debian:debian_linux:libcurl4-doc, p-cpe:/a:debian:debian_linux:libcurl4-gnutls-dev, p-cpe:/a:debian:debian_linux:libcurl4-nss-dev, p-cpe:/a:debian:debian_linux:libcurl4-openssl-dev, cpe:/o:debian:debian_linux:11.0

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

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2022/8/1

弱點發布日期: 2021/5/28

參考資訊

CVE: CVE-2021-22898, CVE-2021-22924, CVE-2021-22945, CVE-2021-22946, CVE-2021-22947, CVE-2022-22576, CVE-2022-27774, CVE-2022-27775, CVE-2022-27776, CVE-2022-27781, CVE-2022-27782, CVE-2022-32205, CVE-2022-32206, CVE-2022-32207, CVE-2022-32208

IAVA: 2022-A-0224-S, 2022-A-0255-S