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

一.漏洞描述

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

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

二.漏洞危害

攻击者可利用反序列化漏洞,通过构造Payload来实现远程攻击服务器来获得主机权限。

三.影响范围

Node.js全版本。

四.漏洞PoC

var serialize = require('node-serialize');

var x ='{"rce":"_$$ND_FUNC$$_function(){console.log(\'exploited\')}()"}'

serialize.unserialize(x);

PoC可用于进一步验证漏洞。

五.修复方案

厂商尚未提供漏洞修补方案,请关注厂商主页及时更新:

https://github.com/luin/serialize

临时解决方案:

  1. 修改/node_modules/node-serialize/lib/serialize.js中的FUNCFLAG值为随机值并保证该值不被泄漏。
  2. 确保Serialize字符串仅内部发送。
  3. 使用公钥(RAS)加密Serialize字符串,确保字符串不被篡改。

参考网址

  1. https://youtu.be/GFacPoWOcw0
  2. https://www.exploit-db.com/docs/41289.pdf

原文发布于微信公众号 - 安恒信息(DBAPP2013)

原文发表时间:2017-02-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java思维导图

互联网协议入门(二)

技术文章第一时间送达! 本文来自“阮一峰的网络日志” 上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。 这是从设计者的角度看问题,今天我想切换...

27780
来自专栏微信公众号:Java团长

互联网协议入门(二)

这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。

8420
来自专栏开源优测

性能测试必备监控技能jvm之jdk命令行工具篇16

前言 对于JVM的性能监控,主要注意以下关键参数,通过jdk自带的命令行工具,即可查看相关参数,从而分析系统或目标服务程序中存在的性能瓶颈 jps JVM Pr...

318120
来自专栏帘卷西风的专栏

Linux常用指令

服务器部署会经常用到linux,很多时候都是用的时候上网查一下指令,然后用完过不了多久就忘记了,因此本文记录一些自己常用的linux指令,以作备忘。并不断添...

30530
来自专栏程序员互动联盟

【专业技术】如何在Linux中添加新的系统调用

系统调用是应用程序和操作系统内核之间的功能接口。其主要目的是使得用户可以使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、通信以及存储管理等方...

26940
来自专栏程序员互动联盟

【专业技术】Linux设备驱动第七篇:高级字符驱动操作之阻塞IO

我们之前介绍过简单的read,write操作,那么会有一个问题:当驱动无法立即响应请求该怎么办?比如一个进程调用read读取数据,当没有数据可读时该怎么办,是立...

33270
来自专栏LanceToBigData

linux(三)之linux常用命令二

今天就是星期五了,又可以休息两天了。有点小激动,开心。不过还是要加油,因为还有很多东西等着我去学习呢! 七、chmod  作用:修改文件的权限 7.1、命令...

24080
来自专栏北京马哥教育

[干货]varnish原理|杨过同学

Varnish是一款高性能的开源HTTP加速器(其实就是带缓存的反向代理服务),可以把http响应内容缓存到内存或文件中,从而提高web服务器响应速度。与传统的...

34860
来自专栏Flutter&Dart

DartVM服务器开发(第三天)--pub管理器、返回html页面

右键点击项目名,New--File,命名为:pubspec.yaml 并在文件里面输入下面内容 (因为在使用外部包时,首先你应该是一个包,所以下面这个内容是...

34040
来自专栏小狼的世界

Linux中的Diff和Patch

本文主要记录两个命令的学习情况:diff 和 patch。diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史...

18830

扫码关注云+社区

领取腾讯云代金券