开发者社区 问答 正文

【漏洞公告】CVE-2017-5941:Node.Js反序列化远程代码执行漏洞

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


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




漏洞编号:
CVE-2017-5941


漏洞名称:
Node.Js反序列化远程代码执行


官方评级:
高危


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


漏洞利用条件和方式:
系统存在Node.js,并且存在node-serialize库,可以远程利用该漏洞执行代码。


漏洞影响范围:
  • Node.js全版本受影响



漏洞修复建议(或缓解措施):



厂商尚未提供漏洞修补方案,请关注厂商主页及时更新: https://github.com/luin/serialize
临时解决方案:
  • 修改/node_modules/node-serialize/lib/serialize.js中的FUNCFLAG值为随机值并保证该值不被泄漏;
  • 确保Serialize字符串仅内部发送;
  • 使用公钥(RAS)加密Serialize字符串,确保字符串不被篡改。

情报来源:
  • http://www.ywclub.org/?p=819
  • https://github.com/luin/serialize












展开
收起
正禾 2017-02-11 07:52:32 4209 分享 版权
阿里云 AI 助理回答

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它通过封装 V8 引擎,使得 JavaScript 能在非浏览器环境中高速执行,特别适合构建高性能的服务端应用。V8 引擎以其出色的编译技术和执行速度,为 Node.js 提供了强大的性能基础,并且 Node.js 采用事件驱动、非阻塞I/O模型,进一步提升了其轻量级和效率。

然而,Node.js 曾面临一项安全挑战,即 CVE-2017-5941 漏洞,这是一个高危漏洞,存在于 node-serialize 库中。该漏洞允许攻击者通过传输特制的JavaScript IIFE(立即调用函数表达式),利用未经过滤的恶意代码实现远程任意代码执行。此漏洞的触发条件是系统中运行有 Node.js 且使用了存在漏洞的 node-serialize 库,并且服务端存在接收并处理序列化数据的接口。

漏洞影响范围: 所有版本的 Node.js 都可能受到此漏洞的影响。

官方修复建议: 截至提及的参考资料时间点,厂商尚未直接提供官方补丁。用户被建议密切关注 node-serialize 库的 GitHub 主页以获取可能的安全更新。

临时缓解措施包括: 1. 修改 FUNCFLAG 值:/node_modules/node-serialize/lib/serialize.js 文件中,将 FUNCFLAG 的值更改为随机且不公开的值,以增加攻击难度。 2. 确保数据内部发送: 确保使用 Serialize 字符串仅限于内部通信,避免外部不可信数据直接参与序列化过程。 3. 加密 Serialize 字符串: 使用公钥加密(如 RSA)对 Serialize 字符串进行保护,确保数据在传输过程中不被篡改。

请注意,以上临时措施不能替代正式的安全更新,应及时关注并应用官方发布的修复方案。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答