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

编译:奇安信代码卫士团队

上周,GitHub 安全实验室的研究员 Erik Krogh Kristensen  StandardVersion 中发现一个漏洞,可导致黑客在多个node.js 仓库(包括遍布2万多个项目的流行的standard-version changelog 工具)中执行shell 命令。

已公开的 PoC 显示,如果standard-version的 releaseCommitMessagForms 参数是由受用户控制的输入提供的,那么恶意行动者能够操纵程序流,在应用服务器上运行任意 shell 命令。

GitHub 将该漏洞标记为“中危”级别。GitHub 安全实验室的一名发言人表示,“这个漏洞的完整 exploit 难以创建,因为它是易受攻击的一个库函数。”GitHub 指出,“完整的 exploit 要求某些客户端使用由受用户控制的输入的特定库函数”,并向所有依赖standard-version 的开源项目更新至修复版本 (8.0.1)。

总结一下,standardVersion 函数中含有一个命令注入漏洞。Standard-verison 库的客户端可能未意识到这个问题,因此可能会编写出包含漏洞的代码。如果库客户端调用了输入不可信的易受攻击的方法,则可能引发远程代码执行后果。

命令注入漏洞

GitHub CodeQL 团队在开发新查询以检测类似 bug 时发现了这一漏洞。实验室的发言人指出,“该查询建模了一个危险的代码模式,从而引发命令行注入漏洞。在调查这个问题时,我们注意到其它15个安全问题也遵循同一个模式:‘不慎允许远程代码执行的库 API’。有时,由于缺乏最佳实践文档,不同的代码库中一再出现危险的模式。”

在大概11.5万个开源项目中运行该查询后,GitHub 安全实验室在其它库中发现了类似漏洞,包括 git-diff-apply、mversion、node-dns-sync 等。

GitHub 已通知项目维护人员更新代码。GitHub 安全实验室建议不使用可见字符串解析为 shell 命令的 API。例如,使用 child_process.execFile,而不是使用 child_process.exec。

该发言人表示,“CodeQL 团队的一个目标是识别这些模式和构建查询,阻止开发人员再次引入该漏洞。”

开发人员可以使用多种工具如 GitHub 代码扫描工具在开发仓库时和自动化开发者工作流中的安全性时运行安全检查。发言人指出,“开发人员可以深入分析出现问题的地方,提前在生命周期中检索更多的漏洞信息。另外,保持更新依赖关系,同时在使用字符串拼接构建 shell 命令时要非常仔细。”

推荐阅读

基于JS的勒索软件Ransom32利用Node.js感染用户

Juniper Networks 修复开源操作系统 Junos OS 等中的多个严重漏洞

谷歌开源漏洞扫描器“海啸”,专为大型企业服务

原文链接

https://portswigger.net/daily-swig/github-security-team-finds-remote-code-execution-bug-in-popular-node-js-changelog-library

https://github.com/advisories/GHSA-7xcx-6wjh-7xp2

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 点个 “在看” ,加油鸭~

GitHub 在热门 Node.js changelog 开源库Standard Version中发现 RCE 漏洞相关推荐

  1. NodeQuant:一个基于Node.js的开源量化交易平台

    NodeQuant:一个基于Node.js的开源量化交易平台 NodeQuant的愿景 让Node.js社区轻巧地开发和部署量化金融交易程序,成为一个简单.高效.可依赖的量化交易平台:NodeQuan ...

  2. node.js是开源的吗_为开源做贡献并不难:我为Node.js项目做贡献的旅程

    node.js是开源的吗 As a developer, you should consider contributing to open source software. Many of your ...

  3. NodeBB – 基于 Node.js 的开源论坛系统

    NodeBB 是一个更好的论坛平台,专门为现代网络打造.它是免费的,易于使用. NodeBB 论坛软件是基于 Node.js 开发,支持 Redis 或 MongoDB 的数据库.它利用 Web So ...

  4. Node.js 修复4个漏洞

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

  5. 对开源库 limdu 命令注入漏洞 (CVE-2020-4066) 的简要分析

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 开源库Limdu 的 trainBatch 函数中存在一个命令注入漏洞 (CVE-2020-4066). Limdu 是 Node.j ...

  6. CentOS 下安装 Node.js 8.11.3 LTS Version

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google Chrome V8 JavaScript引擎,简单说是运行在服务端的 JavaScript.下面我们来演示一下Cen ...

  7. Node.js图片处理库sharp

    1.sharp sharp 是 Node.js 平台上相当热门的一个图像处理库,其实际上是基于 C 语言编写 的 libvips 库封装而来,因此高性能也成了 sharp 的一大卖点.sharp 可以 ...

  8. Ripple(瑞波) JavaScript(node.js) 客户端接口库RippleAPI

    介绍 RippleAPI是XRP Ledger的官方客户端库.目前,RippleAPI仅适用于JavaScript.使用RippleAPI,您可以: 从XRP分类帐历史中查询交易 无需连接任何服务器即 ...

  9. react-native 为本地js和开源库的js编写.d.ts声明文件

    读书不觉已春深 !明日清明节 在使用Typescript编写程序RN过程中遇到困扰,且不论react,不论在浏览器中,只论写react-native的APP,怎么使用 declare声明文件 和 na ...

最新文章

  1. Java SortedSet接口
  2. 一条查询SQL 语句是如何执行的?
  3. cocos2d-x游戏实例(14)-纵版射击游戏(1)
  4. matlab把符号数,Matlab 符号与数值之间的转换
  5. python自定义函数画图_python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条...
  6. python qt5 designer 免费安装_PyCharm离线安装PyQt5_tools(QtDesigner)
  7. Virtualenv 相关
  8. sql unicode转中文_汉字转拼音的Java类库 JPinyin
  9. Studio One 5 Professional for Mac(多功能数字音频工作站)
  10. linux安装软件的方式
  11. SQL Server 2012 查看数据库属性
  12. 数字经济的网络黑手,中科信安:勒索软件攻击比去年同期增加7倍
  13. 芒格推荐书单(完全版32本)
  14. fprom预测结果内容_启动子分析预测数据库
  15. Windows系统下的mklink指令
  16. python解密sg11加密_linux下kangle的php安装sourceguardian SG11加密解密扩展
  17. 编程基础---echarts学习
  18. UPP映象(A C++ GUI lib)
  19. note8 android p,值得买的手机 篇一:2020年,红米note8pro使用评测
  20. 介绍3.3和3.4 Linux内核

热门文章

  1. svn上传时显示database is locked
  2. Windows多屏开发小记
  3. iOS UIWebView清除缓存
  4. 如何针对业务设计架构?——QCon热点专题前瞻
  5. 我的2015plan
  6. 我又发现一个直接就能安装中文小红帽的方法
  7. linux利用内存加快读盘速度,Linux性能优化从入门到实战:10 内存篇:如何利用Buffer和Cache优化程序的运行效率?...
  8. linux下eclipse进行ndk调试,超简单,写的超清晰
  9. Android中的观察者DataSetObservable和DataSetObserver
  10. 一键关闭android应用程序工具类