当前位置: 首页 > news >正文

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

\

看新闻很累?看技术新闻更累?试试下载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

相关文章:

  • [译] 不用祖传秘方 - 写好代码的几个小技巧
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • 安装Cassandra数据库和访问客户端配置
  • CSS中background-position使用技巧
  • java调用IPFS去中心化体系
  • Scrapy 1.5.0之基础入门
  • OSChina 周一乱弹 —— 你老婆和闺蜜总用奇怪的眼神看着你
  • Linux 进程后台运行的几种方式 screen
  • ES6系列--4. 对象的扩展
  • 技术沙龙|风口之下,经验丰富的“传统开发者”要不要转型区块链开发?(西安)...
  • 中兴智能视觉大数据报道:至2020年人脸识别市场规模增速为166.6%
  • nginx lua模块安装 让nginx支持lua
  • 【知识小结】Git 个人学习笔记及心得
  • python的len函数
  • 基础网络
  • 【347天】每日项目总结系列085(2018.01.18)
  • 2017 年终总结 —— 在路上
  • 230. Kth Smallest Element in a BST
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • ESLint简单操作
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • iOS | NSProxy
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript设计模式之工厂模式
  • PHP面试之三:MySQL数据库
  • Promise面试题2实现异步串行执行
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • spring + angular 实现导出excel
  • 代理模式
  • 回顾2016
  • 设计模式 开闭原则
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • gunicorn工作原理
  • raise 与 raise ... from 的区别
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (蓝桥杯每日一题)love
  • (转)3D模板阴影原理
  • (转)c++ std::pair 与 std::make
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .net framework profiles /.net framework 配置
  • .NET 反射的使用
  • @media screen 针对不同移动设备