一、漏洞简介
Node.js是美国Joyent公司的一套建立在Google V8 JavaScript引擎之上的网络应用平台,node-serialize是其中的一个将对象或函数序列化为JSON的模块。
Node.js中的node-serialize模块的‘unserialize()’函数存在远程代码执行漏洞(CNNVD-201702-345,CVE-2017-5941)。该漏洞源于该函数未对外部调用的代码进行有效检测,远程攻击者可通过传入恶意数据利用该漏洞,从而执行任意代码。
二、漏洞危害
由于实际部署中Node.js运行环境较多为操作系统root权限,远程未授权的攻击者可通过输入恶意代码利用上述漏洞,获得主机权限,从而完全控制服务器,进一步可导致服务器数据遭到恶意泄露甚至被删除等危害。凡使用了node-serialize模块的Node.js所有版本均受此影响。
根据白帽汇fofa.so系统的统计数据显示,从全球范围来看,目前全球共有30余万个由Node.js搭建的网站。其中,分布情况排在前五名的国家分别为美国(57%)、爱尔兰(7%)、中国(5%)、德国(4.5%)及新加坡(3%)。
图1 Node.js全球分布范围
从我国范围来看,目前我国共有1.6万个由Node.js搭建的网站,主要分布于浙江(51%),北京(21%),上海(6%)等省市地区。
图2 Node.js中国分布范围
三、修复措施
1、由于相关漏洞利用方式已在互联网上披露,请使用Node.js搭建Web服务或应用的用户,及时检查是否受该漏洞影响。如受影响,可采取以下缓解方案加固服务器主机:
修改/node_modules/node-serialize/lib/serialize.js中的FUNCFLAG值为随机值,并确保该值不被泄漏。
确保Serialize字符串仅内部发送。
使用公钥(RAS)加密Serialize字符串,确保字符串不被篡改。
2、目前,厂商暂未发布修复措施解决此安全问题,建议受影响用户随时关注厂商主页或CNNVD官方网站以获取解决办法:
厂商主页链接:https://nodejs.org/
CNNVD安全漏洞链接:http://www.cnnvd.org.cn/vulnerability/show/cv_id/2017020345
本通报由CNNVD技术支撑单位——杭州安恒信息技术有限公司、北京白帽汇科技有限公司提供支持。
CNNVD将继续跟踪上述漏洞的相关情况,及时发布相关信息。如有需要,可与CNNVD联系。
联系方式: [email protected]
还没有评论,来说两句吧...