Cacti项目是一个开源平台,可为用户提供强大且可扩展的操作监控和故障管理框架。
近日,奇安信CERT监测到Cacti存在命令执行漏洞(CVE-2022-46169),攻击者可通过构造恶意请求在无需登录的情况下向函数中注入命令,达到命令执行的目的。鉴于此漏洞影响范围较大,建议客户尽快做好自查,及时更新至最新版本。
漏洞名称 | Cacti命令执行漏洞 | ||
公开时间 | 2022-12-05 | 更新时间 | 2022-12-06 |
CVE编号 | CVE-2022-46169 | 其他编号 | QVD-2022-45075 |
威胁类型 | 命令执行 | 技术类型 | 命令注入 数据过滤不恰当 |
厂商 | Cacti | 产品 | Cacti |
风险等级 | |||
奇安信CERT风险评级 | 风险等级 | ||
高危 | 蓝色(一般事件) | ||
现时威胁状态 | |||
POC状态 | EXP状态 | 在野利用状态 | 技术细节状态 |
未发现 | 未发现 | 未发现 | 已公开 |
漏洞描述 | 攻击者可通过控制由get_nfilter_request_var()函数检索的参数$poller_id,来满足poller_item =POLLER_ACTION_SCRIPT_PHP条件,触发proc_open()函数,从而导致命令执行。 | ||
影响版本 | Cacti == 1.2.22 | ||
不受影响版本 | Cacti == 1.2.23 Cacti == 1.3.0 | ||
其他受影响组件 | 无 |
威胁评估
漏洞名称 | Cacti命令执行漏洞 | |||
CVE编号 | CVE-2022-46169 | 其他编号 | QVD-2022-45075 | |
CVSS 3.1评级 | 高危 | CVSS 3.1分数 | 9.8 | |
CVSS向量 | 访问途径(AV) | 攻击复杂度(AC) | ||
网络 | 低 | |||
所需权限(PR) | 用户交互(UI) | |||
不需要 | 不需要 | |||
影响范围(S) | 机密性影响(C) | |||
不改变 | 高 | |||
完整性影响(I) | 可用性影响(A) | |||
高 | 高 | |||
危害描述 | 未经授权的远程攻击者可构造恶意请求在目标服务器上执行任意命令。 |
处置建议
1、安全升级
目前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
2、缓解方案
(1) 通过更新 lib/functions.php 中 get_client_addr 函数防止授权绕过,可参考官方补丁代码;
(2) 通过更改remote_agent.php文件防止命令注入,检索$poller_id参数时使用get_filter_request_var函数代替get_nfilter_request_var:
$poller_id = get_filter_request_var("poller_id");
(3) 在参数$poller_id传入proc_open()函数之前通过escapeshellarg()函数进行转义:
$cactiphp = proc_open(read_config_option("path_php_binary")."-q".$config["base_path"]."/script_server.php realtime".escapeshellarg($poller_id),$cactides,$pipes);
参考资料
[1]https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf
声明:本文来自奇安信 CERT,版权归作者所有。
还没有评论,来说两句吧...