Node.js 沙箱易受原型污染攻击
聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
研究人员表示,用于测试不可信 JavaScript 代码的沙箱 vm2 中存在一个漏洞,可使恶意人员规避该库的安全控制并执行远程代码执行攻击。
Vm2的 GitHub 页面显示,该库是“一个能够通过白名单 Node 内置模块运行不可信代码的沙箱。安全地运行!”然而,CISPA 信息安全德国亥姆霍兹中心(德国的一个网络安全研究组织)发现该库易受原型污染攻击。
原型污染是JavaScript 和其它基于对象的语言中的一种漏洞类型,可使攻击者动态地将属性注入敏感对象中,运行任意代码。
“沙箱突围“
如下发布的 PoC展示了几行代码即可利用该漏洞,在主机上执行原型污染和远程代码执行漏洞。
const {VM} = require("vm2");
let vmInstance = new VM();let code = ` res = eval('import(\\'./foo.js\\');') res.__proto__.__proto__.polluted = res.__proto__.__proto__.toString.constructor("return this")().process.mainModule.require("child_process").execSync("touch HACKED").toString();
`;
vmInstance.run(code);
console.log(polluted);
虽然该漏洞被称为“原型污染漏洞”,但协助发现并报告该漏洞的研究员 Cristian-Alexandru Staicu 表示,更好的说法应当是“沙箱突围”。
Staicu 表示,“在所发布的 PoC 中,我们同时展示了一个原型污染 payload 和一个任意代码执行漏洞。它们都是沙箱突围的结果。Vm2 应该阻止对全局对象/特权操作(如要求)的访问权限,我们展示了攻击者如何绕过该安全控制。”
虽然该漏洞并未提供主机设备的根访问权限,但它提供了对 Node.js API的完整访问权限,而这正是 vm2 试图限制的。“
递归漏洞
研究人员在长达数月的时间里一直都在调查位于 JavaScript 沙箱中的漏洞。
3月份,研究人员报告了位于另外一个沙箱 isolated-vm 中的沙箱突围漏洞,可使攻击者获得对 Node.js 上下文 “function” 对象的引用。
研究人员还在至少三个其它沙箱库中发现了类似漏洞。由于目前还在漏洞提交阶段且补丁尚未发布,因此 Staicu 并未透露这些漏洞的详情。他指出,“截至目前,我们的调查结果显示通过 ES6 代理难以对 JavaScript 代码进行沙箱化。我们在多数所分析系统中发现了突围情况,因此在使用这些库执行恶意代码时必须非常小心。”
推荐阅读
GitHub 在 “tar” 和 npm CLI 中发现7个高危的代码执行漏洞
流行的 NPM 包依赖关系中存在远程代码执行缺陷
关于原型污染漏洞的完整指南
jQuery CVE-2019-11358 原型污染漏洞分析和修复建议
【漏洞预警】jQuery 前端库出现罕见的原型污染漏洞,影响范围广泛(含技术分析)
原文链接
https://portswigger.net/daily-swig/node-js-sandboxes-are-open-to-prototype-pollution
https://snyk.io/vuln/SNYK-JS-VM2-1585918
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~
Node.js 沙箱易受原型污染攻击相关推荐
- node.js 原型污染攻击的分析与利用
目录 简介 javaScript中的对象 constructor是什么? javaScript中的原型 原型污染 Merge()为什么不安全? 简介 原型污染攻击, 如名所示, 是通过污染一个基础对象 ...
- Node.js沙箱逃逸
什么是沙箱(sandbox) 在计算机安全性方面,沙箱(沙盒.sanbox)是分离运行程序的安全机制,提供一个隔离环境以运行程序.通常情况下,在沙箱环境下运行的程序访问计算机资源会受到限制或者禁止,资 ...
- 近300个 Windows 10 可执行文件易受 DLL 劫持攻击
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 一个简单的 VBScript就能使用户获得管理员权限并完全绕过Windows 10 的 UAC. 英国普华永道公司的安全研究员 Wie ...
- Node.js 沙箱环境
node官方文档里提到node的vm模块可以用来做沙箱环境执行代码,对代码的上下文环境做隔离. \A common use case is to run the code in a sandboxed ...
- Apache OpenOffice 漏洞使数千万用户易受代码执行攻击
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Apache OpenOffice 中存在一个缓冲区溢出漏洞,可被用于在使用恶意文档的目标机器上执行任意代码. 该漏洞的编号是CVE-2021- ...
- 常用容器管理器易受危险 exploit 攻击
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 一个常见的容器管理组件生成服务 "shim" 的方式中存在一个漏洞,可导致未获授权的第三方以任意内容和任意权限级别 ...
- Mastodon 用户易受密码窃取攻击
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 一名研究员发现,最近逐渐流行起来的推特替代品Mastodon的一个分叉 Glitch 中存在一个漏洞,可导致攻击者窃取Mastodon 用户的密 ...
- Node.js 修复4个漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Node.js 开发人员发布新版本,修复了四个漏洞. Node.js 是用于构建可扩展网络应用程序的流行 JavaScript 运行时环境.在这 ...
- NodeBB原型污染漏洞可导致账户遭接管
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 用于创建论坛应用的 Node.js 平台 NodeBB,已修复一个原型污染漏洞,它可导致攻击者模拟其它用户并接管管理员账户.该漏洞是由于错误地处 ...
最新文章
- 古剑奇谭网络版服务器位置,《古剑奇谭网络版》服务器数据互通调研公告
- R语言axis函数自定义可视化的坐标轴刻度线(axis ticks)
- 单片机 解释型 c语言脚本,解释型单片机应用程序的研究.pdf
- JsonUtils fasterxml jackson
- 201521123092《java程序设计》第九周学习总结
- 使用Powershell 来创建新邮箱帐号
- (原创)无废话C#设计模式之十二:Bridge
- 叶明哲 | 数据中心空调那点事
- INT(M)表示什么意思?
- window.onload中动态获得img的高度
- torch学习笔记--tensor介绍2,对tensor的结构
- CVPR 2020|超越H.265,中科大使用多帧数据改进视频压缩新方法
- (34)FPGA面试题FPGA和CPLD有哪些区别
- CSS 强制换行和禁止换行学习
- swoole 安装测试
- ASP.NET 3.5 开发大全DOC版
- Kotlin中文开发者文档(一)
- 利用ffmpeg提取视频中的声音为MP3格式
- questasim仿真优化加速问题(object无信号,无法看波形,(vsim-12110) All optimizations are disabled,error loading design)
- 【Python+Appium】开展自动化测试(七)截图方法
热门文章
- ELK-elasticsearch-kibana-logstash 报错问题集锦
- OGG_GoldenGate日常维护(案例)
- BZOJ1251序列终结者——非旋转treap
- SEO优化之——html页面相关总结
- V4L2应用程序框架--一【转】
- Spring Bean配置默认为单实例 pring Bean生命周期
- AJAX实例二:实现类似Google的搜索提示【原著】
- 容器和 批量删除 镜像_更高更快更稳,看阿里巴巴如何修炼容器服务「内外功」...
- pycharm编程工具自带python环境吗_pycharm+PyQt5+python最新开发环境配置(踩坑)
- python float 精度_谈谈关于Python里面小数点精度控制的问题