概要
遠端 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 版本中修正這些問題。
Plugin 詳細資訊
檔案名稱: debian_DLA-3252.nasl
代理程式: unix
支援的感應器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus
風險資訊
媒介: CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C
媒介: 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
弱點資訊
CPE: cpe:/o:debian:debian_linux:10.0, p-cpe:/a:debian:debian_linux:cacti
必要的 KB 項目: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l
可輕鬆利用: Exploits are available
CISA 已知遭惡意利用弱點到期日: 2023/3/9
可惡意利用
Core Impact
Metasploit (Cacti 1.2.22 unauthenticated command injection)