版本控制软件爆出远程命令执行漏洞 涉及Git、SVN、Mercurial、CVS版本控制

简介:

几个流行的版本控制系统受到可能严重的 远程命令执行漏洞 的影响。受影响产品的开发人员本周发布了更新补丁来修补安全漏洞。该缺陷影响版本控制软件, 如 Git (CVE-2017-1000117)、Apache Subversion (CVE-2017-9800)、Mercurial (CVE-2017-1000116) 和 CVS。由于CVS 系统上次更新已经是9年前的事情了, 因此没有为它分配 CVE 标识符。

什么是版本控制软件

版本控制软件 提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。

特殊构造的ssh:// 将允许攻击者执行任意命令

Recurity 实验室 Joern Schneeweisz 发现了这个漏洞,攻击者可以远程利用该漏洞,诱使目标用户点击特制的 "ssh://" URL,从而执行任意命令。git 开发人员在其安全公告中解释道

"恶意的第三方可以给出精心制作的 ssh:///..."一个不知情的受害者的 url, 并试图访问该 url 可能导致任何程序中存在的受害者的机器正在执行。这样的 URL 可以放在恶意项目的. gitmodules 文件中, 而不知情的受害者可能会被诱骗运行 ,来触发此漏洞, 。

Apache 软件基金会还提供了一些关于如何利用安全漏洞攻击针对 Subversion (SVN) 用户的详细信息。

"Subversion 客户端有时会连接到存储库提供的 url。这在两种主要情况下发生: 在 "签出"、"导出"、"更新" 和 "切换" 时, 下载的树包含 svn: 外部属性;当使用 "svnsync 同步" 与一个 URL 参数时, 恶意构建的 svn + ssh:///或 URL 会导致客户端运行任意 shell 命令。此类 URL 可能由恶意服务器、恶意用户提交到真实服务器 (攻击该服务器存储库的另一个用户) 或代理服务器生成。

Git版本控制软件漏洞影响(CVE-2017-1000117)

Bugtraq ID: 100283
Class: Input Validation Error
CVE: CVE-2017-1000117
Remote: Yes
Local: No
Published: Aug 10 2017 12:00AM
Updated: Aug 10 2017 12:00AM
Credit: Trevor Jay
Vulnerable: Ubuntu Ubuntu Linux 14.04 LTS 
Redhat Software Collections for RHEL 0 
Redhat Enterprise Linux 7 
Redhat Enterprise Linux 6 
+ Trustix Secure Enterprise Linux 2.0 
+ Trustix Secure Linux 2.2 
+ Trustix Secure Linux 2.1 
+ Trustix Secure Linux 2.0 
GIT GIT 2.14 
GIT GIT 2.13.4 
GIT GIT 2.13.3 
GIT GIT 2.13.2 
GIT GIT 2.13.1 
GIT GIT 2.13 
GIT GIT 2.12.3 
GIT GIT 2.12 
GIT GIT 2.11.2 
GIT GIT 2.11 
GIT GIT 2.10.3 
GIT GIT 2.10 
GIT GIT 2.9.4 
GIT GIT 2.9 
GIT GIT 2.8.5 
GIT GIT 2.8 
GIT GIT 2.7.5 
GIT GIT 2.7.1 
GIT GIT 2.7 
GIT GIT 2.6.7 
GIT GIT 2.6.1 
GIT GIT 2.6 
GIT GIT 2.5.6 
GIT GIT 2.5.4 
GIT GIT 2.5.3 
GIT GIT 2.5.2 
GIT GIT 2.5.1 
GIT GIT 2.5 
GIT GIT 2.4.12 
GIT GIT 2.4.10 
GIT GIT 2.4.9 
GIT GIT 2.4.8 
GIT GIT 2.4.7 
GIT GIT 2.4.6 
GIT GIT 2.4.5 
GIT GIT 2.4.4 
GIT GIT 2.4.3 
GIT GIT 2.4.2 
GIT GIT 2.4.1 
GIT GIT 2.3.10 
GIT GIT 2.3.9 
GIT GIT 2.3.8 
GIT GIT 2.3.7 
GIT GIT 2.3.6 
GIT GIT 2.3.5 
GIT GIT 2.3.4 
GIT GIT 2.3.3 
GIT GIT 2.3.2 
GIT GIT 2.3.1 
GIT GIT 2.3 
GIT GIT 2.2.1 
GIT GIT 2.2 
GIT GIT 2.1.4 
GIT GIT 2.1.3 
GIT GIT 2.1 
GIT GIT 2.0.5 
GIT GIT 2.0.4 
GIT GIT 2.0 
GIT GIT 1.9.5 
GIT GIT 1.9.4 
GIT GIT 1.9 
GIT GIT 1.8.5 6 
GIT GIT 1.7.2 
GIT GIT 1.6.3 .2 
GIT GIT 1.6 6 
GIT GIT 1.6 5 
GIT GIT 1.5.6 6 
GIT GIT 1.5.6 5 
GIT GIT 1.5.6 .4 
GIT GIT 1.5.6 .3 
GIT GIT 1.5.6 
GIT GIT 1.5.5 6 
GIT GIT 1.5.5 5 
GIT GIT 1.5.5 
GIT GIT 1.5.4 7 
GIT GIT 1.5.4 6 
GIT GIT 1.5.2 4 
GIT GIT 1.1.5 
GIT GIT 1.1.4 
GIT GIT 1.8.5.5 
GIT GIT 1.8.5.0 
GIT GIT 1.8.1.4 
GIT GIT 1.8.1.3 
GIT GIT 1.8 
GIT GIT 1.7.3.4 
GIT GIT 1.7.3.3 
GIT GIT 1.4.4.5 
Debian Linux 6.0 sparc 
Debian Linux 6.0 s/390 
Debian Linux 6.0 powerpc 
Debian Linux 6.0 mips 
Debian Linux 6.0 ia-64 
Debian Linux 6.0 ia-32 
Debian Linux 6.0 arm 
Debian Linux 6.0 amd64 
Atlassian SourceTree for Windows 0.5.1.0 
Atlassian SourceTree for macOS 1.0b2
Not Vulnerable: GIT GIT 2.14.1 
GIT GIT 2.13.5 
GIT GIT 2.12.4 
GIT GIT 2.11.3 
GIT GIT 2.10.4 
GIT GIT 2.9.5 
GIT GIT 2.8.6 
GIT GIT 2.7.6 
Atlassian SourceTree for Windows 2.1.10 
Atlassian SourceTree for macOS 2.6.1

SVN(Apache Subversion )版本控制软件漏洞影响(CVE-2017-9800)

Bugtraq ID: 100259
Class: Input Validation Error
CVE: CVE-2017-9800
Remote: Yes
Local: No
Published: Aug 10 2017 12:00AM
Updated: Aug 10 2017 12:00AM
Credit: Jonathan Nieder
Vulnerable: Redhat Enterprise Linux 7 
Redhat Enterprise Linux 6 
+ Trustix Secure Enterprise Linux 2.0 
+ Trustix Secure Linux 2.2 
+ Trustix Secure Linux 2.1 
+ Trustix Secure Linux 2.0 
Apache Subversion 1.9.6 
Apache Subversion 1.9.5 
Apache Subversion 1.9.4 
Apache Subversion 1.9.3 
Apache Subversion 1.9.2 
Apache Subversion 1.9.1 
Apache Subversion 1.9 
Apache Subversion 1.8.18 
Apache Subversion 1.8.17 
Apache Subversion 1.8.16 
Apache Subversion 1.8.11 
Apache Subversion 1.8.10 
Apache Subversion 1.8.9 
Apache Subversion 1.8.5 
Apache Subversion 1.8.1 
Apache Subversion 1.8 
Apache Subversion 1.7.19 
Apache Subversion 1.7.18 
Apache Subversion 1.7.17 
Apache Subversion 1.7.16 
Apache Subversion 1.7.11 
Apache Subversion 1.7.10 
Apache Subversion 1.7.1 
Apache Subversion 1.7 
Apache Subversion 1.6.23 
Apache Subversion 1.6.22 
Apache Subversion 1.6.21 
Apache Subversion 1.6.20 
Apache Subversion 1.6.19 
Apache Subversion 1.6.18 
Apache Subversion 1.6.14 
Apache Subversion 1.6.13 
Apache Subversion 1.6.12 
Apache Subversion 1.6.11 
Apache Subversion 1.6.10 
Apache Subversion 1.6.6 
Apache Subversion 1.6.5 
Apache Subversion 1.6.3 
Apache Subversion 1.6.2 
Apache Subversion 1.5.8 
Apache Subversion 1.5.7 
Apache Subversion 1.5.5 
Apache Subversion 1.5.4 
Apache Subversion 1.5.2 
Apache Subversion 1.4.6 
Apache Subversion 1.3.2 
Apache Subversion 1.0.9 
Apache Subversion 1.0.8 
Apache Subversion 1.0.7 
Apache Subversion 1.0.6 
Apache Subversion 1.0.2 
Apache Subversion 1.8.8 
Apache Subversion 1.8.7 
Apache Subversion 1.8.6 
Apache Subversion 1.8.4 
Apache Subversion 1.8.3 
Apache Subversion 1.8.2 
Apache Subversion 1.8.15 
Apache Subversion 1.8.14 
Apache Subversion 1.8.13 
Apache Subversion 1.7.9 
Apache Subversion 1.7.8 
Apache Subversion 1.7.7 
Apache Subversion 1.7.6 
Apache Subversion 1.7.5 
Apache Subversion 1.7.4 
Apache Subversion 1.7.3 
Apache Subversion 1.7.22 
Apache Subversion 1.7.21 
Apache Subversion 1.7.20 
Apache Subversion 1.7.2 
Apache Subversion 1.7.15 
Apache Subversion 1.7.14 
Apache Subversion 1.7.13 
Apache Subversion 1.7.12 
Apache Subversion 1.6.9 
Apache Subversion 1.6.8 
Apache Subversion 1.6.7 
Apache Subversion 1.6.4 
Apache Subversion 1.6.17 
Apache Subversion 1.6.16 
Apache Subversion 1.6.15 
Apache Subversion 1.6.1 
Apache Subversion 1.6.0 
Apache Subversion 1.5.6 
Apache Subversion 1.4.5 
Apache Subversion 1.4.4 
Apache Subversion 1.4.2 
Apache Subversion 1.4.1 
Apache Subversion 1.4.0 
Apache Subversion 1.3.1 
Apache Subversion 1.3.0 
Apache Subversion 1.2.3 
Apache Subversion 1.2.2 
Apache Subversion 1.2.1 
Apache Subversion 1.1.3 
Apache Subversion 1.1.2 
Apache Subversion 1.1.1 
Apache Subversion 1.1.0 
Apache Subversion 1.0.5 
Apache Subversion 1.0.4 
Apache Subversion 1.0.3 
Apache Subversion 1.0.1
Not Vulnerable: Apache Subversion 1.9.7 
Apache Subversion 1.8.19

三个版本控制软件已经有解决办法

Git、Subversion 和Mercurial 的开发者发布了补丁, 并提供了缓解方法。Git 系统由流行的 Linux 发行版使用, 它们也在处理这个问题。GitLab 还发布了针对此漏洞的修补程序, 组织已将其归类为 "关键"。

虽然并非所有受影响的组织都将该缺陷评为 "关键", 但 Subversion 开发人员已将其指定为最高的严重性等级。Schneeweisz 在星期四的一篇博文中解释说, 颠覆 "受到了最坏的影响"。



原文发布时间:2017年8月18日

本文由:securityWeek 发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/git-svn-mercurial-cvs-rce

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

相关文章
|
7月前
|
Linux 开发工具 数据安全/隐私保护
分布式版本控制git
分布式版本控制git
|
7月前
|
程序员 Linux 开发工具
Git基本概念、工作流程及与SVN的对比
Git基本概念、工作流程及与SVN的对比
131 0
|
7月前
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
95 0
|
4月前
|
敏捷开发 存储 开发工具
版本控制系统的选择:Git与SVN的比较
【8月更文挑战第14天】Git和SVN都是优秀的版本控制系统,它们各自具有独特的优势和适用场景。在选择版本控制系统时,需要根据具体的项目需求、团队特点和开发模式来综合考量。对于需要分布式团队协作、高效处理大型项目或采用敏捷开发模式的团队来说,Git是一个更好的选择。而对于传统团队、集中式开发或简单项目来说,SVN可能更加合适。无论选择哪种版本控制系统,都应该充分利用其提供的工具和功能来提高代码质量和开发效率。
|
3月前
|
存储 Linux 开发工具
掌握版本控制的艺术:Git 技巧深度解析
在软件开发中,版本控制对于代码管理和团队协作至关重要。Git 作为最流行的分布式版本控制系统,凭借其强大的功能和灵活性成为开发者必备工具。本文深入探讨 Git 的高级技巧和最佳实践,包括交互式暂存、撤销提交、合并冲突处理等,帮助你更高效地使用 Git。通过遵循清晰的提交信息、保持提交原子性、利用分支开发等最佳实践,开发者可以更好地管理代码库,提升协作效率。
|
7月前
|
项目管理 开发工具 git
版本控制与源代码管理:在 Visual Basic 项目中使用 Git
【4月更文挑战第27天】本文介绍了在Visual Basic项目中使用Git进行版本控制和源代码管理的重要性。Git作为一个流行的分布式版本控制系统,具备分布式架构、高效性能和强大分支管理等特点。在项目中,需先安装Git,然后初始化仓库、添加文件和提交更改。常用操作包括查看状态、日志、创建及切换分支和合并分支。团队协作时,借助远程仓库和推送拉取命令实现代码共享。虽然Git有学习曲线,但其优势在于强大的功能、灵活性和社区支持,能提升开发效率和代码质量。通过学习和实践,开发者可充分利用Git优化协作和项目管理。
80 1
|
3月前
|
开发工具 git 开发者
掌握版本控制的艺术:Git 与 GitHub 的高效使用指南
在软件开发中,版本控制对于代码管理和团队协作至关重要。本文详细介绍了 Git 的核心概念与命令,包括初始化、创建仓库、文件跟踪、分支管理和远程仓库操作。同时,探讨了如何利用 GitHub 进行项目组织、代码审查及自动化工作流。通过遵循最佳实践,如频繁提交、清晰的信息记录和合理使用分支,开发者可以提升工作效率和团队协作能力,确保项目的持续成功。
|
3月前
|
缓存
SVN常用命令
本文汇总了SVN版本控制系统的常用命令,包括代码检出、提交、更新、添加、删除、查看日志、状态、差异比较、撤销修改、忽略设置、清理、查看信息、文件列表、文件内容查看、blame操作、地址重定向以及分支管理等,旨在帮助用户更高效地使用SVN进行代码版本控制。
|
4月前
|
存储 开发工具 数据安全/隐私保护
Git 与 SVN:版本控制领域的双星对比
【8月更文挑战第27天】
189 6
|
4月前
|
项目管理 开发工具 git