Amazon Linux AMI:cacti (ALAS-2023-1675)

critical Nessus Plugin ID 170545

概要

遠端 Amazon Linux AMI 主機缺少安全性更新。

說明

遠端主機上安裝的 cacti 版本低於 1.1.19-2.20。因此,它受到 ALAS-2023-1675 公告中提及的一個弱點影響。

- 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 並未測試此問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

執行「yum update cacti」以更新系統。

另請參閱

https://alas.aws.amazon.com/ALAS-2023-1675.html

https://alas.aws.amazon.com/cve/html/CVE-2022-46169.html

Plugin 詳細資訊

嚴重性: Critical

ID: 170545

檔案名稱: ala_ALAS-2023-1675.nasl

版本: 1.3

類型: local

代理程式: unix

已發布: 2023/1/24

已更新: 2023/9/6

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

風險資訊

VPR

風險因素: High

分數: 7.4

CVSS v2

風險因素: Critical

基本分數: 10

時間分數: 8.7

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

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

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

弱點資訊

CPE: p-cpe:/a:amazon:linux:cacti, cpe:/o:amazon:linux

必要的 KB 項目: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2023/1/19

弱點發布日期: 2022/12/5

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

可惡意利用

Core Impact

Metasploit (Cacti 1.2.22 unauthenticated command injection)

參考資訊

CVE: CVE-2022-46169