NVRMini2摄像头严重误差清静通告

宣布时间 2018-09-21

误差编号和级别


CVE编号:CVE-2018-1149,危险级别:严重,CVSS分值:厂商自评10,官方未评定
CVE编号:CVE-2018-1150,危险级别:严重,CVSS分值:厂商自评8.3,官方未评定

影响版本


NUUO NVRMini2 3.8.0及以下版本


误差概述


Tenable官网上果真了关于由NUUO公司开发的摄像头系统NVRMini2保存两个严重误差。
CVE-2018-1149:未经身份验证的远程客栈缓冲区溢出
CVE-2018-1150:后门
NVRMini2的结构简图如下

尊龙凯时 - 人生就是搏!


误差验证


CVE-2018-1149:
NVRMini2系统对外袒露了一个HTTP会见接口http://<target>/cgi-bin/cgi_system,通过这个接口,具有权限的用户可以会见到终端装备。cgi_system文件中的功效只有授权用户可以会见,认证的要领为较量用户会见数据Cookie字段中的PHPSESSID值和存储/tmp目录中的session文件名,构建session文件名的代码如下:

尊龙凯时 - 人生就是搏!


从sub_534a4返回的值为会话标识字符串。程序对该字符串长度没有作任何限制。当字符勾转达到sprintf以构建tmp文件名时并没有界线检查。因此,未经身份验证的攻击者可以将超长的PHPSESSID值远程转达给sprintf导致缓冲区溢出,从而远程执行代码。
测试代码如下:

尊龙凯时 - 人生就是搏!


测试代码会导致NVR系统会爆发瓦解征象,经由深入剖析,也可以远程执行代码,攻击者不但能够控制NVR,还可以会见和修改NVR中所有的用户凭证数据,影响严重。


CVE-2018-1150:
NVRMini2的PHP代码中常见的习惯为:
检查目今PHP会话是否有用。
验证会话是否具有正在会见的页面的适当权限(即admin,poweruser,user,root,guest)。
可是,check_session_is_valid()函数中却保存后门的代码,函数如下:

尊龙凯时 - 人生就是搏!


其中标识为“back door”的字样为其源码中就保存的。constant(“MOSES_FILE”) 指向的路径为/tmp/moses。若是/tmp/moses/保存,则未授权的攻击者可以远程列出所有非admin的用户,并修改他们的密码.

尊龙凯时 - 人生就是搏!


攻击演示视频如下:

http://www.iqiyi.com/w_19s2b6hn11.html

修复建议


官方暂时没有相关的计划,建议包管装备不袒露在互联网上,并在防火墙装备上加入对摄像头HTTP服务的会见控制战略。


参考链接


https://www.tenable.com/security/research/tra-2018-25