近日,亚信安全CERT监控到Cacti存在命令执行漏洞(CVE202246169),漏洞细节已公开。该漏洞存在于remoteagent。php文件中,无需身份验证即可访问此文件,攻击者可通过设置网络头HTTP变量绕过身份验证,触发polldata功能,当getnfilterrequestvar()函数检索的参数pollerid满足特定条件时,可触发procopen()函数,从而导致命令执行。此命令注入漏洞允许未经身份验证的用户在构造恶意请求的情况下执行任意命令。 对此,目前厂商已发布修复补丁,但暂未发布版本更新。鉴于该漏洞受影响面较大,亚信安全CERT建议使用Cacti的用户及时关注官方更新,参照官方修复方案尽快采取相关措施,做好资产自查以及预防工作,以免遭受黑客攻击。 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的开源网络流量监测图形分析工具,提供了非常强大的数据和用户管理功能。 漏洞编号和等级 CVE202246169 CVSS3。19。8分 漏洞状态 漏洞细节已公开 PoC暂无 EXP暂无 在野利用未知 受影响版本 Cacti1。2。22 修复建议 临时缓解措施 1。禁止libfunctions。php文件中的getclientaddr函数返回任意IP地址来防止授权绕过,设置不遵循HTTP。。。SERVER变量。若无法修改,应禁止伪造运行Cacti的服务器的IP地址。 2。对remoteagent。php文件进行修改以防止命令注入,变量pollerid应该是一个整数,因此应该通过函数getfilterrequestvar代替getnfilterrequestvar进行检索:functionpollfordata(){。。。polleridgetfilterrequestvar(pollerid);。。。} 3。为了进一步加强对命令注入的防御,pollerid参数应该在传递给procopen之前使用escapeshellarg进行转义:functionpollfordata(){。。。cactiphpprocopen(readconfigoption(pathphpbinary)。q。config〔basepath〕。scriptserver。phprealtime。escapeshellarg(pollerid),cactides,pipes);。。。} 安全补丁修复 目前Cacti官方已发布安全补丁,建议受影响用户尽快安装修复补丁。 1。2。x版本补丁: 1。3。x版本补丁: 对于在PHP7。0下运行的1。2。x实例,还需要进一步更改: