写点什么

Git 漏洞导致攻击者可在用户电脑上运行任意代码

  • 2018-06-05
  • 本文字数:780 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Git 子模块名称验证中的一个缺陷使得远程攻击者可能在开发者机器上执行任意代码。另外,攻击者可以访问部分系统内存。这两个漏洞已经在 Git 2.17.1、2.16.4、2.15.2 和其他版本中得到了修复。

安全研究员 Etienne Stalmans 报告了该漏洞,未打补丁的 Git 版本不验证子模块名称,因此

在克隆代码仓库时,远程仓库可以返回特定的数据来创建或覆盖目标用户系统上的文件,从而可以在目标用户系统上执行任意代码。

具体来说,Git 会镜像 $GIT_DIR/modules 目录中的子模块,这些子模块的名字是在 $GIT_DIR/.gitmodules 中定义的。通过修改.gitmodules 文件的内容,可以将…/ 嵌入到子模块名称中,以欺骗 Git 将子模块写到仓库以外的地方。再加上一个恶意的 post-checkout 钩子,这就有可能在克隆仓库后立即运行恶意代码。

要修复这个问题,需要给子模块名称增加一些规则,不符合规则的名称将被 Git 忽略。基本上,…和符号链接是不被允许的。这样可以确保子模块目录不会被保存到 $GIT_DIR 之外。

Stalmans 表示,他可以利用此漏洞在 GitHub 页面上执行远程代码,不过到目前为止没有出现漏洞被利用的情况。

第二个已修补的漏洞与使用 NTFS 文件系统的仓库有关,攻击者通过欺骗 NTFS 路径健全性检查来读取随机内存中的内容。

Git 社区已经及时在 Git 2.13.7 版本中修复了这两个漏洞,修复补丁也已移植到 2.14.4、2.15.2、2.16.4 和 2.17.1 中。此外,作为附加安全级别,如果代码仓库包含有问题.gitmodules 文件,这些版本将拒绝接受来自用户的推送内容。这是为了:

帮助托管网站保护使用老版客户端的用户,防止恶意内容传播。

GitHub 和其他托管服务已经修补了他们的系统。

查看英文原文 Git Vulnerability May Lead to Arbitrary Code Execution

2018-06-05 16:141664
用户头像

发布了 731 篇内容, 共 462.4 次阅读, 收获喜欢 2005 次。

关注

评论

发布
暂无评论
发现更多内容

从MySQL到ByteHouse,抖音精准推荐存储架构重构解读

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 3 月 PK 榜

软件工程走向“现代化工厂”?谈谈大数据平台软件的企业级部署和运维

先锋IT

App前端开发跨平台框架比较:React Native、Flutter、Xamarin等

天津汇柏科技有限公司

App app定制开发 软件开发定制

华为云时习知&成都大学附属医院,打造“互联网+医疗”标杆

华为云PaaS服务小智

云计算 软件开发 华为云

GaussDB跨云容灾:实现跨地域的数据库高可用能力

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

第41期 | GPTSecurity周报

云起无垠

关于应用架构约束治理的探讨

疯狂架构

架构演进 架构治理 Archunit 架构约束防腐

华为智慧教室3.0的晨光,点亮教育智能化变革

脑极体

AI

基于 Kyuubi 实现分布式 Flink SQL 网关

Apache Flink

你问我答,干货满满!|OpenTiny 挑战赛技术答疑直播来啦~

OpenTiny社区

开源 前端 低代码 组件库

华为云低代码Astro企业应用 Astro Pro上线啦!

华为云PaaS服务小智

低代码 华为云 公测

自定义限速功能实践——Map版本

FunTester

数据库有哪些分类呢?

小魏写代码

软件测试简历书写/面试的必备技能,你都会了吗?

霍格沃兹测试开发学社

分布式数据库 GaiaDB-X 金融应用实践

百度Geek说

云原生数据库 GaiaDB 支持新的管理工具啦

Baidu AICLOUD

云原生数据库

无惧“高基数”数据挑战,TDengine 携手树根互联

TDengine

tdengine 时序数据库

Git漏洞导致攻击者可在用户电脑上运行任意代码_开源_Sergio De Simone_InfoQ精选文章