漏洞公告Node.js反序列化远程代码执行漏洞通告CVE-2017-5941

Posted 青藤云安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞公告Node.js反序列化远程代码执行漏洞通告CVE-2017-5941相关的知识,希望对你有一定的参考价值。

尊敬的客户,Node.js爆出反序列化远程代码执行漏洞,该漏洞详情如下:


1、综述


Node.js是一个javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

Node.js存在反序列化远程代码执行漏洞,Node.js的node-serialize库中存在一个漏洞,该漏洞通过传输JavaScript IIFE,利用恶意代码(未信任数据)达到反序列化远程任意代码执行的效果。


2、漏洞概述


漏洞类型: 反序列化远程代码执行漏洞

危险等级: 高级

利用条件: 系统存在Node.js,并且存在node-serialize库

受影响系统: 暂无补丁,Node.js全版本受影响


3、漏洞编号


CVE-2017-5941 Node.js反序列化远程代码执行漏洞


4、漏洞描述


Node.js存在反序列化远程代码执行漏洞,Node.js的node-serialize库中存在一个漏洞,该漏洞通过传输JavaScript IIFE,利用恶意代码(未信任数据)达到反序列化远程任意代码执行的效果。并且Nodejs服务端必须存在接收序列化的数据接口。


5、漏洞利用(POC)


var serialize = require('node-serialize');
var payload = '{"rce":"_$$ND_FUNC$$_function (){require(\'child_process\').exec(\'ls /\', function(error, stdout, stderr) { console.log(stdout) });}()"}';
serialize.unserialize(payload); 


6、修复建议


厂商尚未提供漏洞修补方案,请关注厂商主页及时更新:https://github.com/luin/serialize


临时解决方案:

1. 修改/node_modules/node-serialize/lib/serialize.js中的FUNCFLAG值为随机值并保证该值不被泄漏。

2. 确保Serialize字符串仅内部发送

3. 使用公钥(RAS)加密Serialize字符串,确保字符串不被篡改。


7、即时检测


青藤云安全在漏洞爆出的第一时间,就己检测出该威胁并通知相关客户。


参考链接

1. https://opsecx.com/index.php/2017/02/08/exploiting-node-js-deserialization-bug-for-remote-code-execution/

2. https://github.com/luin/serialize


声明


本漏洞公告仅用来描述可能存在的安全问题,青藤云安全不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,青藤云安全不为此承担任何责任。青藤云安全拥有对此安全公告的修改和解释权。

青藤 简介

青藤是国内首家自适应安全服务商,目前已经为互联网金融、电子商务、企业服务领域的数十家知名互联网企业提供轻量级、弹性可扩展的新一代安全服务体系。青藤,为企业云安全保驾护航。


以上是关于漏洞公告Node.js反序列化远程代码执行漏洞通告CVE-2017-5941的主要内容,如果未能解决你的问题,请参考以下文章

高危安全通告Apache Tomcat Session 反序列化代码执行漏洞(CVE-2020-9484)

网络安全预警通告Apache Struts2(S2-052) 远程代码执行漏洞

高危!Fastjson反序列化远程代码执行漏洞风险通告,请尽快升级

高危,Fastjson反序列化远程代码执行漏洞风险通告,请尽快升级

高危,Fastjson反序列化远程代码执行漏洞风险通告,请尽快升级

利用 Node.js 反序列化漏洞远程执行代码