安全研究
安全漏洞
Subversion客户端远程目录遍历漏洞
发布日期:2007-08-28
更新日期:2007-08-29
受影响系统:
Subversion Subversion <= 1.4.4不受影响系统:
TortoiseSVN TortoiseSVN < 1.4.5
Subversion Subversion 1.4.5描述:
TortoiseSVN TortoiseSVN 1.4.5
BUGTRAQ ID: 25468
CVE(CAN) ID: CVE-2007-3846
Subversion是一款开放源码的多用户版本控制系统,支持非ASCII 文本和二进制数据。
Subversion在处理文件路径时存在目录遍历漏洞,远程攻击者可能利用此漏洞在用户系统上的任意位置创建文件。
Subversion客户端在checkout期间没有验证从服务端所获得的文件名中是否包含有“..\”,这允许在checkout目录之外创建文件。如果用户在没有将“\”用于分隔目录路径的系统上提交了路径中包含有“..\”的文件,则将文件checkout到“\”为目录分隔符的系统上后就会导致在客户端的任意位置创建文件。
<*来源:Christian Grothoff
Nils Durner
链接:http://secunia.com/advisories/26625/
http://subversion.tigris.org/servlets/ReadMsg?list=users&msgNo=69413
http://secunia.com/advisories/26632/
http://tortoisesvn.net/node/291
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
建议:
临时解决方法:
* 扫描包含有“\”的路径并重新命名。
* 安装以下hook脚本检查文件名中的“\”:
#!/bin/sh
### backslash-check.py: A Subversion pre-commit hook script to prevent
### files containing "\" from being added to the repository.
###
### See http://cve.mitre.org/cgi-bin/cvename.cgi?name=2007-3846
### *** NOTE: ***
### Because Subversion hook scripts execute in a scrubbed environment,
### we use an absolute path to the svnlook binary. You might need to
### adjust it for your system.
SVNLOOK="/usr/bin/svnlook"
### You shouldn't need to change anything below this line.
REPOS=${1}
TXN=${2}
if ${SVNLOOK} changed -t ${TXN} ${REPOS} | grep -E "^A +.*\\\\"; then
echo "" >&2
echo "Cannot commit paths containing '\\':" >&2
echo "" >&2
# Show the actual paths:
${SVNLOOK} changed -t ${TXN} ${REPOS} \
| grep -E "^A +.*\\\\" | cut -c5- >&2
echo "" >&2
exit 1
else
exit 0
fi
厂商补丁:
Subversion
----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://subversion.tigris.org/downloads/subversion-1.4.5.tar.bz2
TortoiseSVN
-----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi?modtime=1188133405&big_mirror=0
浏览次数:2565
严重程度:0(网友投票)
绿盟科技给您安全的保障
