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