Debian DLA-3252-1:cacti - LTS 安全性更新

critical Nessus Plugin ID 169445

概要

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

說明

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

- Cacti 1.2.12 的下列位置存在多個跨網站指令碼 (XSS) 弱點:(1)reports_admin.php、(2) data_queries.php、(3) data_input.php、(4) graph_templates.php、(5) graphs.php、(6)reports_admin.php 和 (7) data_input.php。(CVE-2020-23226)

- templates_import.php (Cacti 1.2.13) 中存在跨網站指令碼 (XSS) 弱點,這是在範本匯入預覽期間 xml_path 欄位不當逸出錯誤訊息所致 (CVE-2020-25706)

- 如果來賓使用者具有圖形即時權限,Cacti 1.2.8 中的 graph_realtime.php 允許遠端攻擊者透過 cookie 中的 shell 元字元執行任意 OS 命令。(CVE-2020-8813)

- 在某些 ldap 情況下,可使用某些認證類型繞過 Cacti 驗證。
(CVE-2022-0730)

- Cacti 是一個開放原始碼平台,可為使用者提供健全且可延伸的作業監控和錯誤管理架構。在受影響的版本中,如果為任何受監控的裝置選取特定的資料來源,則未經驗證的使用者可利用命令插入弱點在執行 Cacti 的伺服器上執行任意程式碼。該弱點存在於「remote_agent.php」檔案中。使用者無需經過身分驗證即可存取此檔案。此函式會透過「get_client_addr」擷取用戶端的 IP 位址,並透過「gethostbyaddr」將此 IP 位址解析為對應的主機名稱。在此之後,系統會驗證「poller」表格中是否有一個項目,其中的主機名稱對應於解析出的主機名稱。如果找到此項目,該函式會傳回「true」並授權用戶端。
由於「get_client_addr」函式的實作,使用者可繞過此授權。該函式在「lib/functions.php」檔案中定義,並透過檢查數個「$_SERVER」變數來判斷用戶端的 IP 位址。攻擊者可以任意設定以「HTTP_」開頭的變數。
由於「poller」表格中有一個預設項目包含執行 Cacti 之伺服器的主機名稱,因此攻擊者可提供「Forwarded-For:<TARGETIP>」標頭等方式來繞過驗證。這樣,「get_client_addr」函式就會傳回執行 Cacti 之伺服器的 IP 位址。接着呼叫「gethostbyaddr」,可以將此 IP 位址解析為伺服器的主機名稱,因為預設項目的緣故,該位址將通過「poller」主機名稱檢查。繞過「remote_agent.php」檔案的授權後,攻擊者可以觸發不同的動作。其中一個動作稱為「polldata」。被叫用的函式「poll_for_data」會擷取一些要求參數,並從資料庫載入對應的「poller_item」項目。如果「poller_item」的「action」等於「POLLER_ACTION_SCRIPT_PHP」,則使用「proc_open」函式來執行 PHP 指令碼。攻擊者控制的參數「$poller_id」是透過允許任意字串的「get_nfilter_request_var」函式來擷取。稍後,將此變數插入傳遞至「proc_open」的字串中,進而導致命令插入弱點。例如,藉由提供「poller_id=;id`,執行「id」命令。為了執行有弱點的呼叫,攻擊者必須提供「host_id」和「local_data_id」,其中對應「poller_item」的「action」設為「POLLER_ACTION_SCRIPT_PHP」。這兩個 ID (「host_id」和「local_data_id」) 都可以輕易暴力破解。唯一的要求是存在具有「POLLER_ACTION_SCRIPT_PHP」動作的「poller_item」。這很可能發生在生產型執行個體上,因為此動作是透過一些預先定義的範本新增,例如「Device - Uptime」或「Device - Polling Time」。如果將「poller_item」的「action」類型設定爲「POLLER_ACTION_SCRIPT_PHP」(「2」),則未經驗證的使用者可利用此命令插入弱點來執行任意命令。爲防止授權繞過,應當使攻擊者無法透過「get_client_addr」(「lib/functions.php」檔案) 傳回任意 IP 位址。只要不接受「HTTP_...」「$_SERVER」變數即可實現這點。如果出於相容性的原因應該保留這些變數,則至少應該防止攻擊者偽造執行 Cacti 至伺服器的 IP 位址。此弱點已在 1.2.x 和 1.3.x 版本分支中解決,1.2.23 是第一個包含修補程式的版本。(CVE-2022-46169)

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

解決方案

升級 cacti 套件。

針對 Debian 10 buster,已在 1.2.2+ds1-2+deb10u5 版本中修正這些問題。

另請參閱

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

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

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

https://security-tracker.debian.org/tracker/CVE-2020-23226

https://security-tracker.debian.org/tracker/CVE-2020-25706

https://security-tracker.debian.org/tracker/CVE-2020-8813

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

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

https://packages.debian.org/source/buster/cacti

Plugin 詳細資訊

嚴重性: Critical

ID: 169445

檔案名稱: debian_DLA-3252.nasl

版本: 1.4

類型: local

代理程式: unix

已發布: 2023/1/1

已更新: 2023/9/11

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

風險資訊

VPR

風險因素: High

分數: 8.4

CVSS v2

風險因素: High

基本分數: 9.3

時間分數: 8.1

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

CVSS 評分資料來源: CVE-2020-8813

CVSS v3

風險因素: Critical

基本分數: 9.8

時間分數: 9.4

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

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

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

弱點資訊

CPE: p-cpe:/a:debian:debian_linux:cacti, cpe:/o:debian:debian_linux:10.0

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

可被惡意程式利用: true

可輕鬆利用: Exploits are available

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

弱點發布日期: 2020/2/22

CISA 已知遭惡意利用弱點到期日: 2023/3/9

可惡意利用

Core Impact

Metasploit (Cacti 1.2.22 unauthenticated command injection)

參考資訊

CVE: CVE-2020-23226, CVE-2020-25706, CVE-2020-8813, CVE-2022-0730, CVE-2022-46169