聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

研究人员表示,用于测试不可信 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 沙箱易受原型污染攻击相关推荐

  1. node.js 原型污染攻击的分析与利用

    目录 简介 javaScript中的对象 constructor是什么? javaScript中的原型 原型污染 Merge()为什么不安全? 简介 原型污染攻击, 如名所示, 是通过污染一个基础对象 ...

  2. Node.js沙箱逃逸

    什么是沙箱(sandbox) 在计算机安全性方面,沙箱(沙盒.sanbox)是分离运行程序的安全机制,提供一个隔离环境以运行程序.通常情况下,在沙箱环境下运行的程序访问计算机资源会受到限制或者禁止,资 ...

  3. 近300个 Windows 10 可执行文件易受 DLL 劫持攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 一个简单的 VBScript就能使用户获得管理员权限并完全绕过Windows 10 的 UAC. 英国普华永道公司的安全研究员 Wie ...

  4. Node.js 沙箱环境

    node官方文档里提到node的vm模块可以用来做沙箱环境执行代码,对代码的上下文环境做隔离. \A common use case is to run the code in a sandboxed ...

  5. Apache OpenOffice 漏洞使数千万用户易受代码执行攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Apache OpenOffice 中存在一个缓冲区溢出漏洞,可被用于在使用恶意文档的目标机器上执行任意代码. 该漏洞的编号是CVE-2021- ...

  6. 常用容器管理器易受危险 exploit 攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 一个常见的容器管理组件生成服务 "shim" 的方式中存在一个漏洞,可导致未获授权的第三方以任意内容和任意权限级别 ...

  7. Mastodon 用户易受密码窃取攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 一名研究员发现,最近逐渐流行起来的推特替代品Mastodon的一个分叉 Glitch 中存在一个漏洞,可导致攻击者窃取Mastodon 用户的密 ...

  8. Node.js 修复4个漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Node.js 开发人员发布新版本,修复了四个漏洞. Node.js 是用于构建可扩展网络应用程序的流行 JavaScript 运行时环境.在这 ...

  9. NodeBB原型污染漏洞可导致账户遭接管

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 用于创建论坛应用的 Node.js 平台 NodeBB,已修复一个原型污染漏洞,它可导致攻击者模拟其它用户并接管管理员账户.该漏洞是由于错误地处 ...

最新文章

  1. 古剑奇谭网络版服务器位置,《古剑奇谭网络版》服务器数据互通调研公告
  2. R语言axis函数自定义可视化的坐标轴刻度线(axis ticks)
  3. 单片机 解释型 c语言脚本,解释型单片机应用程序的研究.pdf
  4. JsonUtils fasterxml jackson
  5. 201521123092《java程序设计》第九周学习总结
  6. 使用Powershell 来创建新邮箱帐号
  7. (原创)无废话C#设计模式之十二:Bridge
  8. 叶明哲 | 数据中心空调那点事
  9. INT(M)表示什么意思?
  10. window.onload中动态获得img的高度
  11. torch学习笔记--tensor介绍2,对tensor的结构
  12. CVPR 2020|超越H.265,中科大使用多帧数据改进视频压缩新方法
  13. (34)FPGA面试题FPGA和CPLD有哪些区别
  14. CSS 强制换行和禁止换行学习
  15. swoole 安装测试
  16. ASP.NET 3.5 开发大全DOC版
  17. Kotlin中文开发者文档(一)
  18. 利用ffmpeg提取视频中的声音为MP3格式
  19. questasim仿真优化加速问题(object无信号,无法看波形,(vsim-12110) All optimizations are disabled,error loading design)
  20. 【Python+Appium】开展自动化测试(七)截图方法

热门文章

  1. ELK-elasticsearch-kibana-logstash 报错问题集锦
  2. OGG_GoldenGate日常维护(案例)
  3. BZOJ1251序列终结者——非旋转treap
  4. SEO优化之——html页面相关总结
  5. V4L2应用程序框架--一【转】
  6. Spring Bean配置默认为单实例 pring Bean生命周期
  7. AJAX实例二:实现类似Google的搜索提示【原著】
  8. 容器和 批量删除 镜像_更高更快更稳,看阿里巴巴如何修炼容器服务「内外功」...
  9. pycharm编程工具自带python环境吗_pycharm+PyQt5+python最新开发环境配置(踩坑)
  10. python float 精度_谈谈关于Python里面小数点精度控制的问题