Ubuntu 16.04 ESM / 18.04 ESM / 20.04 ESM / 22.04 LTS:Netty 弱點 (USN-6049-1)

medium Nessus Plugin ID 174932

概要

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

說明

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

- 在 Netty 4.1.x 版的 4.1.46 之前版本中,ZlibDecoders 允許在解碼 ZlibEncoded 位元組資料流時進行無限制記憶體配置。攻擊者可將大型 ZlibEncoded 位元組資料流傳送至 Netty 伺服器,強制伺服器將所有可用記憶體配置至單一解碼器。(CVE-2020-11612)

- Netty 是一種開放原始碼的非同步事件驅動型網路應用程式架構,適用於快速開發可維護的高效能通訊協定伺服器和用戶端。在 4.1.59.Final 版之前的 Netty 中,類似 Unix 的系統存在與不安全的暫存檔有關的弱點。使用 netty 的多部分解碼器時,如果啟用了磁碟上的暫時儲存上傳功能,則透過本機系統暫存目錄可造成本機資訊洩漏。在類似 Unix 的系統中,暫存目錄會在系統的所有使用者之間共用。
因此,使用未明確設定檔案/目錄權限的 API 寫入此目錄時,會導致資訊洩漏。值得注意的是,這不會影響現代 MacOS 作業系統。在類似 unix 的系統中,File.createTempFile 方法會建立一個隨機檔案,但依預設會以 -rw-r--r-- 權限建立此檔案。因此,如果將敏感資訊寫入此檔案,則其他本機使用者亦可讀取此資訊。這就是 netty 的 AbstractDiskHttpData 容易遭受攻擊的情況。
此問題已在 4.1.59.Final 版中修正。作為因應措施,您在啟動 JVM 時,可指定自己的 java.io.tmpdir,或使用 DefaultHttpDataFactory.setBaseDir(...) 將目錄設定為僅可由目前使用者讀取的內容。(CVE-2021-21290)

- Netty 是一種開放原始碼的非同步事件驅動型網路應用程式架構,適用於快速開發可維護的高效能通訊協定伺服器和用戶端。Netty (io.netty: netty-codec-http2) 4.1.60.Final 之前版本中有一個弱點會啟用要求走私。如果原始 HTTP/2 要求中存在 Content-Length 標頭,則此欄位在向上傳播時,`Http2MultiplexHandler` 不會對其進行驗證。只要要求不是以 HTTP/1.1 的形式進行 Proxy 處理,就不會有問題。如果要求是作為 HTTP/2 資料流傳入,則透過 `Http2StreamFrameToHttpObjectCodec ` 將其轉換為 HTTP/1.1 網域物件 (`HttpRequest`、`HttpContent` 等),然後向上傳送至子通道的管道並透過遠端對等端以 HTTP/1.1 的形式進行 Proxy 處理時,這可能會導致要求走私。在 Proxy 的情況下,使用者可假設 content-length 以某種方式經過驗證,但事實並非如此。如果將要求轉送至作為 HTTP/1.1 連線的後端通道,則 Content-Length 現在具有意義,需要對它執行檢查。當內文從 HTTP/2 降級為 HTTP/1.1 時,攻擊者可在內文中走私要求。如需攻擊範例,請參閱連結的 GitHub 公告。使用者只有在符合以下條件時才會受到影響:使用 `HTTP2MultiplexCodec` 或 `Http2FrameCodec`,使用 `Http2StreamFrameToHttpObjectCodec` 轉換為 HTTP/1.1 物件,並將這些 HTTP/1.1 物件轉送至另一個遠端對等端。此問題已在 4.1.60.Final 版本中修補。作為因應措施,使用者可透過實作放在 `Http2StreamFrameToHttpObjectCodec` 後面 `ChannelPipeline` 中的自訂 `ChannelInboundHandler`,來自行執行驗證。(CVE-2021-21295)

- Netty 是一種開放原始碼的非同步事件驅動型網路應用程式架構,適用於快速開發可維護的高效能通訊協定伺服器和用戶端。Netty (io.netty: netty-codec-http2) 4.1.61.Final 之前版本中有一個弱點會啟用要求走私。如果要求僅使用 endStream 設定為 true 的單一 Http2HeaderFrame,則程式不會正確驗證 content-length 標頭。如果透過 Proxy 處理將要求傳送至遠端對等端並將其轉譯為 HTTP/1.1,這可能會導致要求走私。這是 GHSA-wm47-8v5p-wjpj/CVE-2021-21295 的後續行動,目前尚未得到修正。
這已在 4.1.61.Final 版本中修正。(CVE-2021-21409)

- Bzip2 解壓縮解碼器函式不允許對解壓縮的輸出資料設定大小限制 (這會影響解壓縮期間使用的配置大小)。所有 Bzip2Decoder 使用者都會受到影響。惡意輸入可能會導致 OOME 及 DoS 攻擊 (CVE-2021-37136)

- Snappy 框架解碼器函式不會限制可能導致使用過多記憶體的區塊長度。除此之外,它還可能在收到整個區塊前緩衝保留的可略過區塊,這同樣有可能造成過量使用記憶體。提供可解壓縮為大型內容 (透過網路資料流或檔案) 的惡意輸入,或傳送可略過的巨型區塊,皆可能會導致出現此弱點。(CVE-2021-37137)

- Netty 是一種非同步事件驅動型網路應用程式架構,適用於快速開發可維護的高效能通訊協定伺服器和用戶端。當標頭名稱的開頭/結尾中出現控制字元時,Netty 4.1.71.Final 之前的版本會略過這些字元。不過這應該很快便會失敗,因為不符合規格要求,而且可能造成 HTTP 要求走私攻擊。未執行驗證可能會導致 netty 在將標頭名稱傳遞至其他遠端系統以作為 Proxy 使用之前先清理標頭名稱。此遠端系統無法再查看無效的使用方式,因此不會自行執行驗證。使用者應升級至 4.1.71.Final 版。(CVE-2021-43797)

- Netty 專案是一個事件驅動的非同步網路應用程式架構。在 4.1.86.Final 之前的版本中,剖析格式錯誤的特製訊息時,可能會因無限遞回而造成 StackOverflowError。此問題已在 4.1.86.Final 版中修正。除了使用自訂 HaProxyMessageDecoder 外,沒有其他因應措施。(CVE-2022-41881)

- Netty 專案是一個事件驅動的非同步網路應用程式架構。在 4.1.83.Final 到 4.1.86.Final 版中,以 _iterator_ 值呼叫 `DefaultHttpHeadesr.set` 時,並未執行標頭值驗證,這讓迭代器中的惡意標頭值能夠執行 HTTP 回應分割攻擊。此問題已在 4.1.86.Final 版中修正。整合器可將 `DefaultHttpHeaders.set(CharSequence, Iterator<?>)` 呼叫變更為 `remove()` 呼叫,並在值的迭代器迴圈中呼叫 `add()`,即可解決此問題。(CVE-2022-41915)

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

解決方案

更新受影響的 libnetty-java 套件。

另請參閱

https://ubuntu.com/security/notices/USN-6049-1

Plugin 詳細資訊

嚴重性: Medium

ID: 174932

檔案名稱: ubuntu_USN-6049-1.nasl

版本: 1.3

類型: local

代理程式: unix

已發布: 2023/4/28

已更新: 2023/10/16

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

風險資訊

VPR

風險因素: Medium

分數: 5.1

CVSS v2

風險因素: Medium

基本分數: 4.3

時間分數: 3.6

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

CVSS 評分資料來源: CVE-2021-43797

CVSS v3

風險因素: Medium

基本分數: 6.5

時間分數: 6

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

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

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

弱點資訊

CPE: p-cpe:/a:canonical:ubuntu_linux:libnetty-java, cpe:/o:canonical:ubuntu_linux:22.04:-:lts, cpe:/o:canonical:ubuntu_linux:16.04:-:esm, cpe:/o:canonical:ubuntu_linux:20.04:-:esm, cpe:/o:canonical:ubuntu_linux:18.04:-:esm

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

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2023/4/28

弱點發布日期: 2020/4/7

參考資訊

CVE: CVE-2020-11612, CVE-2021-21290, CVE-2021-21295, CVE-2021-21409, CVE-2021-37136, CVE-2021-37137, CVE-2021-43797, CVE-2022-41881, CVE-2022-41915

USN: 6049-1