版本控制软件爆出远程命令执行漏洞 涉及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

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

相关文章
|
6天前
|
开发工具 数据中心 git
详解IDEA git 版本回滚
详解IDEA git 版本回滚
9 0
|
1月前
|
Shell 网络安全 开发工具
GIT常用命令
GIT常用命令
|
1天前
|
存储 IDE 开发工具
Git 常用命令大全
Git 常用命令大全
12 0
|
5天前
|
开发工具 git
Git恢复之前版本的两种方法reset、revert(图文详解)
Git恢复之前版本的两种方法reset、revert(图文详解)
6 0
|
6天前
|
敏捷开发 测试技术 持续交付
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
17 0
|
11天前
|
存储 安全 项目管理
Git项目管理——Git常用命令汇总(五)
Git项目管理——Git常用命令汇总(五)
15 1
|
11天前
|
缓存 项目管理 开发工具
Git项目管理——提交项目和版本回退(二)
Git项目管理——提交项目和版本回退(二)
18 2
|
15天前
|
开发工具 git 开发者
使用Git进行版本控制的最佳实践
【6月更文挑战第3天】使用Git进行版本控制的最佳实践包括:初始化配置Git仓库,设置个人信息和默认编辑器;提交信息要简洁明了,使用有意义的标题和描述;分支管理中,为新功能或修复创建分支,定期合并并保持主分支稳定;进行代码审查以保证质量;使用标签标记里程碑;忽略不必要的文件;定期备份仓库并学会恢复操作;不断学习和实践Git的高级用法。遵循这些实践可提升开发效率和代码质量。
|
1月前
|
网络安全 开发工具 git
版本管理 git 常用命令
版本管理 git 常用命令
27 1
|
1月前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。