• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

Cacti 命令执行漏洞通告二次更新(CVE-2022-46169)

【发布时间:2023-02-20】

威胁预警团队

2022/12/12


1. 漏洞综述

1.1 漏洞背景

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具,可为用户提供强大且可扩展的操作监控和故障管理框架。cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户,功能非常强大完善、界面友好。近日,新华三攻防实验室威胁预警团队监测到Cacti官方发布了安全公告,修复了一个存在于Cacti中的命令执行漏洞(CVE-2022-46169),新华三攻防实验室建议用户更新Cacti到最新的安全版本避免遭受攻击利用。

1.2 漏洞详情

该漏洞存在于remote_agent.php文件中,未经身份验证的恶意攻击者可以通过设置HTTP_变量绕过身份验证,再通过构造特殊的$poller_id 参数来触发proc_open() 函数,成功利用此漏洞可在目标服务器上执行任意命令,获取服务器的控制权限。

1.3 漏洞复现

构造特殊的$poller_id 参数,满足poller_item =POLLER_ACTION_SCRIPT_PHP条件,触发proc_open()函数,代码执行成功。

2. 影响范围

Cacti = 1.2.22

3. 严重等级

威胁等级

高危

影响程度

一般

利用价值

利用难度

漏洞评分

9.8

4. 处置方法

4.1 临时解决措施

1、禁止lib/functions.php文件中的get_client_addr函数返回任意IP地址

2、修改remote_agent.php文件, 使用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);

// ...

}

4.2 官方补丁

目前官方已修复该漏洞,受影响用户可以升级更新到安全版本。官方下载链接:

https://www.cacti.net/info/downloads

4.3 新华三解决方案

1、新华三安全设备防护方案

新华三IPS规则库将在1.0.222版本支持对该漏洞的识别,新华三全系安全产品可通过升级IPS特征库识别该漏洞的攻击流量,并进行主动拦截。

2、新华三态势感知解决方案

新华三态势感知已支持该漏洞的检测,通过信息搜集整合、数据关联分析等综合研判手段,发现网络中遭受该漏洞攻击及失陷的资产。

3、新华三云安全能力中心解决方案

新华三云安全能力中心知识库已更新该漏洞信息,可查询对应漏洞产生原理、升级补丁、修复措施等。

5. 参考链接

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

新华三官网
联系我们