【漏洞通告】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