GLSA-202209-17:Redis:多個弱點

critical Nessus Plugin ID 165541

語系:

說明

遠端主機受到 GLSA-202209-17 中所述的弱點影響 (Redis:多個弱點)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。在受影響的版本中,於 Redis 中執行的特製 Lua 指令碼可造成堆積型 Lua 堆疊溢位,這是因為對此情形的檢查不完整所導致。這會導致堆積損毀,並可能造成遠端程式碼執行。
從 2.6 開始,此問題存在於受 Lua 指令碼支援的所有 Redis 版本中。此問題已在 6.2.6、6.0.16 與 5.0.14 版中修正。對於無法升級的使用者,採取在不修補 redis-server 可執行檔的情況下減輕問題的因應措施,是為了防止使用者執行 Lua 指令碼。此動作可以透過使用 ACL 限制 EVAL 和 EVALSHA 命令完成。(CVE-2021-32626)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。在受影響的版本中,攻擊者可利用 Redis 中出現的整數溢位錯誤損毀堆積,並且此錯誤可能導致遠端程式碼執行。此弱點涉及將預設的「proto-max-bulk-len」和「client-query-buffer-limit」組態參數變更為非常大的值,以及建構特製的非常大的資料流元素。此問題已在 Redis 6.2.6、6.0.16 與 5.0.14 版中修正。對於無法升級的使用者,採取在不修補 redis-server 可執行檔的情況下減輕問題的其他因應措施,是為了防止使用者修改「proto-max-bulk-len」組態參數。此動作可以使用 ACL 來完成,以限制無權限的使用者使用 CONFIG SET 命令。 (CVE-2021-32627)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。攻擊者可利用 Redis 所有版本都在使用的 ziplist 資料結構中的整數溢位錯誤損毀堆積,並且此錯誤可能導致遠端程式碼執行。此弱點涉及將預設的 ziplist 組態參數 (「hash-max-ziplist-entries」、「hash-max-ziplist-value」、「zset-max-ziplist-entries」 或 「zset-max-ziplist-value」) 修改為非常大的值,然後建構特製的命令以建立非常大的 ziplist。此問題已在 Redis 版本 6.2.6、6.0.16 與 5.0.14 中修正。採取在不修補 redis-server 可執行檔的情況下減輕問題的其他因應措施,是為了防止使用者修改上述組態參數。此動作可以使用 ACL 來完成,以限制無權限的使用者使用 CONFIG SET 命令。 (CVE-2021-32628)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。使用 Redis Lua 偵錯程式時,使用者可傳送格式錯誤的要求,造成偵錯程式的通訊協定剖析器讀取實際緩衝區之外的資料。此問題會影響支援 Lua 偵錯的所有 Redis 版本 (3.2 或更新版本)。此問題已在 6.2.6 、6.0.16 與 5.0.14 版中修正。(CVE-2021-32672)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。剖析傳入的 Redis 標准通訊協定 (RESP) 要求時,Redis 會根據決定元素數量 (位於多個批量標頭中) 和每個元素大小 (位於批量標頭中) 的使用者指定值配置記憶體。透過多個連線傳送特製要求的攻擊者可造成伺服器配置大量記憶體。由於我們會使用相同的剖析機制處理驗證要求,因此未經驗證的使用者也可利用此弱點。此問題已在 Redis 版本 6.2.6、6.0.16 與 5.0.14 中修正。採取在不修補 redis-server 可執行檔的情況下減輕問題的其他因應措施,是為了封鎖存取,以防止未經授權的使用者修改連線至 Redis。可以透過不同的方式完成此動作:使用防火牆、iptables、安全性群組等網路存取控制工具,或啟用 TLS 並要求使用者使用用戶端憑證完成驗證。
(CVE-2021-32675)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。攻擊者可利用影響所有 Redis 版本的整數溢位錯誤損毀堆積,並且可能會使用此錯誤洩漏堆積的任意內容或觸發遠端程式碼執行。此弱點涉及將預設的「set-max-intset-entries」組態參數變更為非常大的值,以及建構特製的命令以操控設定。此問題已在 Redis 版本 6.2.6、6.0.16 與 5.0.14 中修正。採取在不修補 redis-server 可執行檔的情況下減輕問題的其他因應措施,是為了防止使用者修改「set-max-intset-entries」組態參數。此動作可以使用 ACL 來完成,以限制無權限的使用者使用 CONFIG SET 命令。 (CVE-2021-32687)

- Redis 是一種保留在磁碟上的記憶體內資料庫。從 2.2 版開始,以及低於 5.0.13、6.0.15 和 6.2.5 的版本中,存在與超出邊界讀取、整數溢位和緩衝區溢位有關的弱點。在 32 位元系統上,Redis *BIT* 命令容易受到整數溢位弱點影響,攻擊者可利用此弱點來損毀堆積、洩漏任意堆積內容或觸發遠端程式碼執行攻擊。此弱點涉及將預設的「proto-max-bulk-len」組態參數變更為非常大的值,以及建構特製的命令位元命令。此問題只會影響 32 位元平台上的 Redis,或編譯為 32 位元二進位制的 Redis。Redis 5.0 版、3m 6.0.15 和 6.2.5 版包含此問題的修補程式。在不修補「redis-server」可執行檔的情況下減輕此問題的另一個因應措施是,防止使用者修改「proto-max-bulk-len」組態參數。爲此,可以使用 ACL 來限制無權限的使用者使用 CONFIG SET 命令。
(CVE-2021-32761)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。剖析特別建構的大型多批次網路回覆時,redis-cli 命令行工具和 redis-sentinel 服務可能容易受到整數溢位攻擊。這是因為基礎 hiredis 程式庫中存在弱點,即它在呼叫 calloc() 堆積配置函式之前未執行溢位檢查。此問題只會影響堆積配置器未自行執行溢位檢查的系統。大多數現代系統都會執行檢查,因此不太可能受到影響。此外,redis-sentinel 預設情況下使用 jemalloc 配置器,也不受此弱點影響。此問題已在 Redis 版本 6.2.6、6.0.16 與 5.0.14 中修正。
(CVE-2021-32762)

- Redis 是一種保留在磁碟上的開放原始碼記憶體資料庫。攻擊者可利用基礎字串程式庫中的整數溢位錯誤損毀堆積,並且此錯誤可能導致拒絕服務或遠端程式碼執行。此弱點涉及將預設的「proto-max-bulk-len」組態參數變更為非常大的值,以及建構特製的網路承載或命令。此問題已在 Redis 版本 6.2.6、6.0.16 與 5.0.14 中修正。採取在不修補 redis-server 可執行檔的情況下減輕問題的其他因應措施,是為了防止使用者修改「proto-max-bulk-len」組態參數。此動作可以使用 ACL 來完成,以限制無權限的使用者使用 CONFIG SET 命令。 (CVE-2021-41099)

- Redis 是一種保留在磁碟上的記憶體內資料庫。能夠存取 Redis 7.0.0 之前版本或 6.2.7 版的攻擊者可以利用 Lua 指令碼執行環境中的弱點插入 Lua 程式碼,以其他 Redis 使用者的權限 (可能更高) 執行此程式碼。Redis 中的 Lua 指令碼執行環境提供了一些措施,用於防止指令碼產生持續的副作用,並在之後影響相同或不同指令碼的執行。這些措施的數個弱點早已為人所知,但因為 Redis 安全性模型不認可使用者或權限的概念,所以它們沒有安全性影響。在 Redis 6.0 中引入 ACL 後,具有較低權限的使用者可惡意利用這些弱點插入 Lua 程式碼,插入的程式碼會於稍後在有權限的使用者執行 Lua 指令碼時執行。此問題已在 Redis 7.0.0 和 6.2.7 版中修正。若未使用 Lua 指令碼,在不修補 redis-server 可執行檔的情況下減輕此問題的另一個因應措施是使用 ACL 規則封鎖對 SCRIPT LOAD 和 EVAL 命令的存取。(CVE-2022-24735)

- Redis 是一種保留在磁碟上的記憶體內資料庫。在 6.2.7 和 7.0.0 之前版本中,攻擊者可透過嘗試載入特製的 Lua 指令碼造成 NULL 指標解除參照,進而導致 redis-server 處理程序損毀。此問題已在 Redis 7.0.0 和 6.2.7 版中修正。若未使用 Lua 指令碼,在不修補 redis-server 可執行檔的情況下減輕此問題的另一個因應措施是使用 ACL 規則封鎖對 SCRIPT LOAD 和 EVAL 命令的存取。
(CVE-2022-24736)

- Redis 是一種保留在磁碟上的記憶體內資料庫。針對特定狀態下的串流金鑰執行「XAUTOCLAIM」命令可能會導致堆積溢位,並可能導致遠端程式碼執行。此問題會影響 7.x 分支的 7.0.4 之前版本。修補程式已在 7.0.4 版中發佈。
(CVE-2022-31144)

- 據發現,Redis v7.0 的 streamGetEdgeID 元件存在記憶體洩漏弱點。(CVE-2022-33105)

- Redis 是一種保留在磁碟上的記憶體內資料庫。7.0.0 至 7.0.5 版本容易受到整數溢位弱點影響。使用特製的「COUNT」參數針對串流金鑰執行「XAUTOCLAIM」命令可能會造成整數溢位,進而後續引致堆積溢位,並且可能導致遠端程式碼執行。現已在 Redis 7.0.5 版本中修補此問題。目前尚無已知的因應措施。(CVE-2022-35951)

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

解決方案

所有 Redis 使用者皆應升級至最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-db/redis-7.0.5

另請參閱

https://security.gentoo.org/glsa/202209-17

https://bugs.gentoo.org/show_bug.cgi?id=803302

https://bugs.gentoo.org/show_bug.cgi?id=816282

https://bugs.gentoo.org/show_bug.cgi?id=841404

https://bugs.gentoo.org/show_bug.cgi?id=856040

https://bugs.gentoo.org/show_bug.cgi?id=859181

https://bugs.gentoo.org/show_bug.cgi?id=872278

Plugin 詳細資訊

嚴重性: Critical

ID: 165541

檔案名稱: gentoo_GLSA-202209-17.nasl

版本: 1.3

類型: local

已發布: 2022/9/29

已更新: 2023/10/10

支援的感應器: Nessus

風險資訊

VPR

風險因素: Medium

分數: 6.7

CVSS v2

風險因素: High

基本分數: 9

時間分數: 7

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

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

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-35951

弱點資訊

CPE: p-cpe:/a:gentoo:linux:redis, cpe:/o:gentoo:linux

必要的 KB 項目: Host/local_checks_enabled, Host/Gentoo/release, Host/Gentoo/qpkg-list

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2022/9/29

弱點發布日期: 2021/7/21

參考資訊

CVE: CVE-2021-32626, CVE-2021-32627, CVE-2021-32628, CVE-2021-32672, CVE-2021-32675, CVE-2021-32687, CVE-2021-32761, CVE-2021-32762, CVE-2021-41099, CVE-2022-24735, CVE-2022-24736, CVE-2022-31144, CVE-2022-33105, CVE-2022-35951