【漏洞通告】Cacti命令注入漏洞(CVE-2022-46169)

發布時間 2022-12-07

0x00 漏洞概述

CVE   ID

CVE-2022-46169

發現時間

2022-12-06

類    型

命令注入

等    級

嚴重

遠程利用

影響范圍


攻擊復雜度

用戶交互

PoC/EXP


在野利用


 

0x01 漏洞詳情

Cacti 是一個開源項目,可為用戶提供一個強大且可擴展的操作監控和故障管理框架。

12月6日,Cacti項目發布安全公告,修復了Cacti中的一個命令注入漏洞(CVE-2022-46169),該漏洞的CVSSv3評分為9.8,目前漏洞細節已公開。

CVE-2022-46169漏洞源于Cacti v1.2.22版本中的remote_agent.php文件,如果配置了action類型為POLLER_ACTION_SCRIPT_PHP的poller_item,則proc_open函數用于執行PHP腳本,可通過參數$poller_id傳遞任意字符串,導致命令注入漏洞。成功利用該漏洞可能導致未經身份驗證的用戶在運行 Cacti 的服務器上執行任意命令。

 

影響范圍

Cacti 版本 v1.2.22

 

0x02 安全建議

目前該漏洞已經修復,受影響用戶可升級到Cacti 版本1.2.23或1.3.0。

下載鏈接:

https://github.com/Cacti/cacti/tags

注:Cacti已發布該漏洞的補丁,但補丁更新版本1.2.23和1.3.0目前暫未發布,相關補丁鏈接及漏洞細節詳見官方公告:

https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf

緩解措施:

1.通過不允許使lib/functions.php 文件中的 get_client_addr函數返回任意IP地址來防止授權繞過,這可以通過不遵守HTTP_…$_SERVER變量來實現。如果出于兼容性原因應保留這些,至少應該防止偽造運行 Cacti 的服務器的 IP 地址。

2.通過更改remote_agent.php文件來防止命令注入,檢索$poller_id參數時使用get_filter_request_var函數代替get_nfilter_request_var:

function poll_for_data() {

       // ...

           $poller_id  = get_filter_request_var('poller_id');

           // ...

3.在將參數$poller_id傳遞給proc_open函數之前,應使用escapeshellarg進行轉義:

function poll_for_data() {

// ...

$cactiphp = proc_open(read_config_option('path_php_binary') . ' -q ' . $config['base_path'] . '/script_server.php realtime ' . escapeshellarg($poller_id), $cactides, $pipes);

// ...

 

0x03 參考鏈接

https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf

https://github.com/Cacti/cacti

 

0x04 版本信息

版本

日期

修改內容

V1.0

2022-12-07

首次發布

 

0x05 附錄

公司簡介

啟明星辰成立于1996年,是由留美博士嚴望佳女士創建的、擁有完全自主知識產權的信息安全高科技企業。是國內最具實力的信息安全產品、安全服務解決方案的領航企業之一。

公司總部位于北京市中關村軟件園啟明星辰大廈,公司員工6000余人,研發團隊1200余人, 技術服務團隊1300余人。在全國各省、市、自治區設立分支機構六十多個,擁有覆蓋全國的銷售體系、渠道體系和技術支持體系。公司于2010年6月23日在深圳中小板掛牌上市。(股票代碼:002439)

多年來,啟明星辰致力于提供具有國際競爭力的自主創新的安全產品和最佳實踐服務,幫助客戶全面提升其IT基礎設施的安全性和生產效能,為打造和提升國際化的民族信息安全產業領軍品牌而不懈努力。


關于我們

啟明星辰安全應急響應中心主要針對重要安全漏洞的預警、跟蹤和分享全球最新的威脅情報和安全報告。

關注以下公眾號,獲取全球最新安全資訊:

image.png