Zabbix Server的trapper命令处理,存在命令注入漏洞,可导致远程代码执行。
远程代码执行
CVSSv3 Score
9.0 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
AC: HIGH 需要服务端配置开启自动注册,或者Zabbix Proxy(会认证主机名)自动发现。
Zabbix 3.0.x~3.0.30
https://www.zabbix.com/cn/download?zabbix=3.0
该漏洞原理与CVE-2017-2824相同,参考
https://talosintelligence.com/reports/TALOS-2017-0325
active checks是自动注册的命令字,自动注册的本意是agent可主动将主机注册给server进行监控,在2.2.18版本中可以在IP中注入(参见上文的版本分析处,2.2.19版本才增加了ip校验)shell命令。CVE-2017-2824提到的漏洞在discovery data命令字即自动发现功能中,由于没有校验IP,导致可在IP中写入shell命令,进而在执行script cmd时达到命令注入。
比如在IP中写入内容
;touch /tmp/zabbix_pwned
那么执行ping命令时就变为
/bin/ping -c 3 ;touch /tmp/zabbix_pwned 2>&1
CVE-2017-2824在3.0.x的修复办法是,对IP进行校验,代码如下:
但是校验IP的方法可以被绕过,Ipv4校验没问题,ipv6校验可绕过: