0x00背景介绍
12月8日,天融信阿尔法实验室监测到Cacti官方发布了安全公告,修复了Cacti的一个命令执行漏洞(CVE-2022-46169)。
0x01漏洞描述
Cacti项目是一个开源平台,可为用户提供强大且可扩展的操作监控和故障管理框架。该漏洞存在于“remote_agent.php”文件中,攻击者无需身份验证即可访问此文件。攻击者可利用get_nfilter_request_var()函数检索的参数$poller_id,来满足poller_item =POLLER_ACTION_SCRIPT_PHP条件,触发proc_open()函数,从而导致命令执行。漏洞利用成功后,未经身份验证的攻击者可以在运行 Cacti 的服务器上执行任意代码。
0x02漏洞等级
CVE-2022-46169:高危
0x03受影响版本
Cacti = 1.2.22
0x04安全版本
Cacti = 1.2.23
Cacti = 1.3.0
0x05修复建议
-
安全补丁
-
缓解方案
-
通过更新 lib/functions.php 中 get_client_addr 函数防止授权绕过,可参考官方补丁代码;
-
通过更改remote_agent.php文件防止命令注入,检索$poller_id参数时使用get_filter_request_var函数代替get_nfilter_request_var:
$poller_id = get_filter_request_var('poller_id');
-
在参数$poller_id传入proc_open()函数之前通过escapeshellarg()函数进行转义:
目前Cacti官方已发布安全补丁,但暂未发布版本更新,建议受影响用户关注官方更新或参考官方补丁代码进行修复:
https://github.com/Cacti/cacti/commit/7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216
https://github.com/Cacti/cacti/commit/b43f13ae7f1e6bfe4e8e56a80a7cd867cf2db52b
注意:对于在 PHP < 7.0 下运行的 1.2.x 实例,还需要进一步更改:
https://github.com/Cacti/cacti/commit/a8d59e8fa5f0054aa9c6981b1cbe30ef0e2a0ec9
$cactiphp = proc_open(read_config_option('path_php_binary').'-q'.$config['base_path'].'/script_server.php realtime'.escapeshellarg($poller_id),$cactides,$pipes);
参考链接:
https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf
0x06声明
天融信阿尔法实验室拥有对此公告的修改和解释权,如欲转载,必须保证此公告的完整性。由于传播、利用此公告而造成的任何后果,均由使用者本人负责,天融信阿尔法实验室不为此承担任何责任。
天融信阿尔法实验室成立于2011年,一直以来,阿尔法实验室秉承“攻防一体”的理念,汇聚众多专业技术研究人员,从事攻防技术研究,在安全领域前瞻性技术研究方向上不断前行。作为天融信的安全产品和服务支撑团队,阿尔法实验室精湛的专业技术水平、丰富的排异经验,为天融信产品的研发和升级、承担国家重大安全项目和客户服务提供强有力的技术支撑。
天融信
阿尔法实验室
长按二维码关注我们
原文始发于微信公众号(天融信阿尔法实验室):【风险提示】天融信关于Cacti命令执行漏洞(CVE-2022-46169)的风险提示
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论