安全研究

安全漏洞
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
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

在UNIX系统上,创建..\DIRNAME/exploit.exe文件并添加到库中的顶层,将该库checkout到Win32系统,这时文件应位于checkout目录外DIRNAME目录下。

建议:
临时解决方法:

* 扫描包含有“\”的路径并重新命名。
* 安装以下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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障