漏洞预警 | 组件漏洞可能影响257万IOT设备(CVE-2018-18778)

阅读量    114782 | 评论 4

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

2018年10月30日,白帽汇安全研究院监测到网络上出现了应用于大量IOT设备的Mini_httpd组件爆出任意文件读取漏洞(CVE-2018-18778),可能影响全球两百多万设备。该漏洞是由于当服务器上的Mini_httpd组件开启vhost模式时,由于没有对http头数据进行安全过滤,导致外网攻击者可发送HOST头为空的的HTTP数据包,触发漏洞,引起任意文件读取。

Mini_httpd是一个微型的Http服务器,在占用系统资源较小的情况下可以保持一定程度的性能(约为Apache的90%),因此广泛被各类IOT(路由器,交换器,摄像头等)作为嵌入式服务器。而包括华为,zyxel,海康威视,树莓派等在内的厂商的旗下设备都曾采用Mini_httpd组件。

概况

Mini_httpd是ACME Labs开发的软件,支持基本的HTTP协议的GET、HEAD、POST方法,也支持CGI和基本的验证功能。是相对比较适合学习使用,其简单实现了一个webserver的功能,因此适合作为个人网站搭建和各类物理设备的管理设置接口,不适宜大型的Web商业场景。

目前FOFA系统最新数据(一年内数据)显示全球范围内共有2579771个Mini_httpd的设备。中国台湾地区使用数量最多,共有423951台,越南第二,共有343538台,哥伦比亚第三,共有320493台,印度第四,共有163121台,巴基斯坦第五,共有95424台。需要注意的是,还有很多处于内网的IOT设备网站并不能统计的到。

全球范围含有Mini_httpd组件的IOT设备分布情况(仅为分布情况,非漏洞影响情况)

中国大陆地区中广东省使用用数量最多,共有15911;北京市第二,共有5772台,辽宁省第三,共有4222台,江苏省市第四,共有2387台,江西省第五,共有1551台。

中国大陆地区含有Mini_httpd组件的IOT设备设备分布情况(仅为分布情况,非漏洞影响情况)

 

危害等级

高危

 

漏洞原理

CVE-2018-18778

漏洞原因在于Mini_httpd中虚拟主机模式(vhost)有缺陷。

虚拟主机模式并不是默认开启,需要在命令行利用-v参数开启(mini_httpd -v -C mini_httpd.conf)

当虚拟主机模式开启后,网络请求文件的绝对路径为:Host头+url。因此攻击者只要在web端口访问服务器时,设置Host头为空,等同于通知服务器需要某绝对物理路径文件。

只有在vhost值不为0的情况下,才会调用virtual_file函数,进行拼接。virtual_file函数中的snprintf函数拼接host+url。

接着,会调用do_file函数,该函数功能是记录日志,并读取Host拼接后的文件输出给用户(客户端或web端)。此时,攻击者就可以直接看到返回的敏感文件数据。


do_file函数中的open函数根据绝对路径读取文件

最后的文件读取效果如下图所示。


直接读取/etc/passwd文件

而从官方发布的补丁来看,可以发现是由于安全过滤条件的缺失导致的漏洞。


可以看到补丁新添加了过滤条件,对0字节进行了过滤

 

漏洞影响

目前漏洞影响版本号包括:

Mini_httpd 1.30版本之前

 

影响范围

白帽汇安全研究院还在研究中。

 

漏洞POC

目前FOFA客户端平台已经更新CVE-2018-18778检测POC。

CVE-2018-18778 POC截图

 

CVE编号

CVE-2018-18778

 

修复建议

1、在打补丁前暂时下线设备。

2、安装最新的版本,新版本官网下载地址:http://www.acme.com/software/mini_httpd/

白帽汇会持续对该漏洞进行跟进。后续可以持续关注链接注链接https://nosec.org/home/detail/1926.html

 

参考

[1] https://acme.com/software/mini_httpd/

[2] http://blog.topsec.com.cn/ad_lab/cve-2018-18778%e5%8e%9f%e5%88%9b%e6%bc%8f%e6%b4%9e%e5%ae%89%e5%85%a8%e9%80%9a%e5%91%8a/

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多