Debian DLA-3000-1:waitress - LTS 安全性更新

high Nessus Plugin ID 161188

概要

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

說明

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

-Waitress 1.3.1 及之前版本實作了 RFC7230 的 MAY 部分,其中指出:雖然 start-line 和 header 欄位的行結束字元是序列 CRLF,但接收方可以將單一 LF 識別為行結束字元並忽略前面的任何 CR。遺憾的是,如果前端伺服器使用 LF 剖析 header 欄位的方式與使用 CRLF 剖析 header 欄位的方式不同,將會導致前端和後端伺服器以兩種不同的方式剖析相同的 HTTP 訊息。這可能導致 HTTP 要求走私/分割,進而導致 Waitress 看到兩個要求,而前端伺服器只能看到一則 HTTP 訊息。此問題已在 Waitress 1.4.0 中修正。(CVE-2019-16785)

- Waitress 1.3.1 及之前版本會剖析 Transfer-Encoding 標頭,並且只尋找單一字串值,如果該值先前未進行區塊分割,則將找不到該值並改用 Content-Length 標頭。
根據 HTTP 標準,Transfer-Encoding 應該是以逗號分隔的清單,最內層的編碼在前,接著是其他任何傳輸編碼,最後是區塊編碼。透過
「Transfer-Encoding: gzip, chunked」傳送的要求會不正確地遭到忽略,且這個要求會改用 Content-Length 標頭來判斷 HTTP 訊息的內文大小。在使用 HTTP 管道的情況下,這可能允許 Waitress 將單一要求視為多個要求。此問題已在 Waitress 1.4.0 中修正。(CVE-2019-16786)

- 在 Waitress 1.4.0 及之前版本中,如果在 Waitress 之前使用 Proxy 伺服器,攻擊者可能會繞過前端來傳送無效要求,並且 Waitress 將會以不同方式剖析該要求,進而可能導致走私要求問題。Waitress 會將傳輸編碼標頭中包含特殊空白字元的特別建構要求剖析成區塊要求,但由於傳輸編碼標頭含有無效字元,該標頭被視為無效,因此前端伺服器會使用內容長度標頭。如果前端伺服器對後端 Waitress 伺服器執行 HTTP 管道作業,則可能導致 HTTP 要求分割,進而可能造成快取毒害或非預期的資訊洩漏問題。此問題已透過執行更嚴格的 HTTP 欄位驗證,在 Waitress 1.4.1 及之前版本中進行修正。
(CVE-2019-16789)

- Waitress 1.3.1 及之前版本允許透過兩次傳送 Content-Length 標頭來實現要求走私。
Waitress 會對雙重 Content-Length 標頭進行標頭折疊,而且由於無法將現在的逗號分隔值轉換為整數,因此會在內部將 Content-Length 設為 0。如果在單一要求中傳送兩個 Content-Length 標頭,Waitress 會將該要求視為沒有內文,進而將該要求的內文視為 HTTP 管道中的一個新要求。此問題已在 Waitress 1.4.0 中修正。
(CVE-2019-16792)

-Waitress 是適用於 Python 2 和 3 的 Web 伺服器閘道介面伺服器。在未正確驗證傳入 HTTP 要求符合 RFC7230 標準的代理伺服器後使用 2.1.0 版和更舊版本時,Waitress 和前端代理伺服器可能會就要求應在何處開始和結束發生分歧。這會允許透過前端代理伺服器將要求走私給服務生,然後再採取行動。有兩種類型的弱點可能導致本公告中已解決的要求走私弱點:使用 Python 的 `int()` 將字串剖析為整數,導致將 `+10` 剖析為 `10`,或將 `0x01` 剖析為 `1`,其中標準指定字串應僅包含數字或十六進位數字;
Waitress 不支援區塊延伸模組,但它會在未驗證區塊延伸模組不包含非法字元的情況下予以捨棄。已在 Waitress 2.1.1 中修正此弱點。現也已提供因應措施。在 waitress 前面部署代理伺服器時,開啟所有功能以確保要求符合 RFC7230 標準。不過,某些 Proxy 伺服器可能不提供此功能,建議使用者升級至 waitress 最新版本。
(CVE-2022-24761)

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

解決方案

升級 waitress 套件。

針對 Debian 9 Stretch,已在 1.0.1-1+deb9u1 版本中修正這些問題。

另請參閱

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

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

https://www.debian.org/lts/security/2022/dla-3000

https://security-tracker.debian.org/tracker/CVE-2019-16785

https://security-tracker.debian.org/tracker/CVE-2019-16786

https://security-tracker.debian.org/tracker/CVE-2019-16789

https://security-tracker.debian.org/tracker/CVE-2019-16792

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

https://packages.debian.org/source/stretch/waitress

Plugin 詳細資訊

嚴重性: High

ID: 161188

檔案名稱: debian_DLA-3000.nasl

版本: 1.3

類型: local

代理程式: unix

已發布: 2022/5/13

已更新: 2023/10/27

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

風險資訊

VPR

風險因素: Medium

分數: 4.4

CVSS v2

風險因素: Medium

基本分數: 6.4

時間分數: 5.3

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

CVSS 評分資料來源: CVE-2019-16789

CVSS v3

風險因素: High

基本分數: 8.2

時間分數: 7.6

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

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

弱點資訊

CPE: p-cpe:/a:debian:debian_linux:python-waitress, p-cpe:/a:debian:debian_linux:python-waitress-doc, p-cpe:/a:debian:debian_linux:python3-waitress, cpe:/o:debian:debian_linux:9.0

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

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2022/5/12

弱點發布日期: 2019/12/20

參考資訊

CVE: CVE-2019-16785, CVE-2019-16786, CVE-2019-16789, CVE-2019-16792, CVE-2022-24761