Vulnerabilities > CVE-2007-5005 - Path Traversal vulnerability in multiple products

047910
CVSS 10.0 - CRITICAL
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
network
low complexity
broadcom
ca
CWE-22
critical
nessus

Summary

Directory traversal vulnerability in rxRPC.dll in CA (Computer Associates) BrightStor ARCserve Backup for Laptops and Desktops r11.0 through r11.5 allows remote attackers to upload and overwrite arbitrary files via a ..\ (dot dot backslash) sequence in the destination filename argument to sub-function 8 in the rxrReceiveFileFromServer command.

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Relative Path Traversal
    An attacker exploits a weakness in input validation on the target by supplying a specially constructed path utilizing dot and slash characters for the purpose of obtaining access to arbitrary files or resources. An attacker modifies a known path on the target in order to reach material that is not available through intended channels. These attacks normally involve adding additional path separators (/ or \) and/or dots (.), or encodings thereof, in various combinations in order to reach parent directories or entirely separate trees of the target's directory structure.
  • Directory Traversal
    An attacker with access to file system resources, either directly or via application logic, will use various file path specification or navigation mechanisms such as ".." in path strings and absolute paths to extend their range of access to inappropriate areas of the file system. The attacker attempts to either explore the file system for recon purposes or access directories and files that are intended to be restricted from their access. Exploring the file system can be achieved through constructing paths presented to directory listing programs, such as "ls" and 'dir', or through specially crafted programs that attempt to explore the file system. The attacker engaging in this type of activity is searching for information that can be used later in a more exploitive attack. Access to restricted directories or files can be achieved through modification of path references utilized by system applications.
  • File System Function Injection, Content Based
    An attack of this type exploits the host's trust in executing remote content including binary files. The files are poisoned with a malicious payload (targeting the file systems accessible by the target software) by the attacker and may be passed through standard channels such as via email, and standard web content like PDF and multimedia files. The attacker exploits known vulnerabilities or handling routines in the target processes. Vulnerabilities of this type have been found in a wide variety of commercial applications from Microsoft Office to Adobe Acrobat and Apple Safari web browser. When the attacker knows the standard handling routines and can identify vulnerabilities and entry points they can be exploited by otherwise seemingly normal content. Once the attack is executed, the attackers' program can access relative directories such as C:\Program Files or other standard system directories to launch further attacks. In a worst case scenario, these programs are combined with other propagation logic and work as a virus.
  • Using Slashes and URL Encoding Combined to Bypass Validation Logic
    This attack targets the encoding of the URL combined with the encoding of the slash characters. An attacker can take advantage of the multiple way of encoding an URL and abuse the interpretation of the URL. An URL may contain special character that need special syntax handling in order to be interpreted. Special characters are represented using a percentage character followed by two digits representing the octet code of the original character (%HEX-CODE). For instance US-ASCII space character would be represented with %20. This is often referred as escaped ending or percent-encoding. Since the server decodes the URL from the requests, it may restrict the access to some URL paths by validating and filtering out the URL requests it received. An attacker will try to craft an URL with a sequence of special characters which once interpreted by the server will be equivalent to a forbidden URL. It can be difficult to protect against this attack since the URL can contain other format of encoding such as UTF-8 encoding, Unicode-encoding, etc.
  • Manipulating Input to File System Calls
    An attacker manipulates inputs to the target software which the target software passes to file system calls in the OS. The goal is to gain access to, and perhaps modify, areas of the file system that the target software did not intend to be accessible.

Nessus

NASL familyWindows
NASL idCA_BABLD_LGSERVER_RCE1.NASL
descriptionAccording to the version of rxRPC.dll installed on the remote host, the Computer Associates product is affected by multiple vulnerabilities that could allow a remote attacker to execute arbitrary code on the host.
last seen2020-06-01
modified2020-06-02
plugin id69317
published2013-08-13
reporterThis script is Copyright (C) 2013-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/69317
titleCA ARCserve Backup for Laptops and Desktops Server and CA Desktop Management Suite Multiple Remote Vulnerabilities
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(69317);
  script_version("1.10");
  script_cvs_date("Date: 2018/06/27 18:42:27");

  script_cve_id(
    "CVE-2007-3216",
    "CVE-2007-5003",
    "CVE-2007-5004",
    "CVE-2007-5005",
    "CVE-2007-5006",
    "CVE-2008-1328",
    "CVE-2008-1329"
  );
  script_bugtraq_id(
    24348,
    28616
  );

  script_name(english:"CA ARCserve Backup for Laptops and Desktops Server and CA Desktop Management Suite Multiple Remote Vulnerabilities");
  script_summary(english:"Checks version of rxRPC.dll");

  script_set_attribute(
    attribute:"synopsis",
    value:
"The remote host has software installed that is affected by multiple
remote vulnerabilities."
  );
  script_set_attribute(
    attribute:"description",
    value:
"According to the version of rxRPC.dll installed on the remote host, the
Computer Associates product is affected by multiple vulnerabilities that
could allow a remote attacker to execute arbitrary code on the host."
  );
  # https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=173105
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?9c393da3");
  script_set_attribute(
    attribute:"solution",
    value:"Apply the appropriate patch per the vendor's advisory."
  );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"exploit_framework_core", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'CA BrightStor ARCserve for Laptops and Desktops LGServer Buffer Overflow');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
  script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
  script_set_attribute(attribute:"canvas_package", value:'D2ExploitPack');
  script_cwe_id(22, 119, 189, 287);

  script_set_attribute(attribute:"vuln_publication_date", value:"2007/09/20");
  script_set_attribute(attribute:"patch_publication_date", value:"2008/04/03");
  script_set_attribute(attribute:"plugin_publication_date", value:"2013/08/13");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:ca:arcserve_backup_for_laptops_and_desktops");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:ca:brightstor_arcserve_backup_laptops_desktops");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:ca:desktop_management_suite");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");

  script_copyright(english:"This script is Copyright (C) 2013-2018 Tenable Network Security, Inc.");

  script_dependencies("smb_hotfixes.nasl");
  script_require_keys("SMB/Registry/Enumerated");
  script_require_ports(139, 445);

  exit(0);
}

include("audit.inc");
include("smb_func.inc");
include("smb_hotfixes.inc");
include("smb_hotfixes_fcheck.inc");
include("smb_reg_query.inc");
include("misc_func.inc");

registry_init();
port = kb_smb_transport();

login   =  kb_smb_login();
pass    =  kb_smb_password();
domain  =  kb_smb_domain();

key_list = make_list(
  # BABLD (Server) 11.5 / 11.1
  "SOFTWARE\ComputerAssociates\BrightStor Mobile Backup Server\CurrentVersion\InstallDir",
  # BABLD (Explorer) 11.5
  "SOFTWARE\ComputerAssociates\BrightStor Mobile Backup Manager GUI\CurrentVersion\InstallDir",
  # BABLD (Explorer) 11.1
  "SOFTWARE\ComputerAssociates\BrightStor Mobile Backup Admin Gui\CurrentVersion\InstallDir"
);

check_paths = make_list();

hklm = registry_hive_connect(hive:HKEY_LOCAL_MACHINE, exit_on_fail:TRUE);
foreach key (key_list)
{
  path = get_registry_value(handle:hklm, item:key);
  if (!isnull(path) && path != '')
    check_paths = make_list(check_paths, tolower(path));
}

RegCloseKey(handle:hklm);

# Additional hard-coded check paths for CA Desktop Management Suite
check_paths = make_list(
  check_paths,
  tolower("C:\Program Files (x86)\CA\DSM\BABLD\MGUI\"),
  tolower("C:\Program Files\CA\DSM\BABLD\MGUI\")
);

check_paths = list_uniq(check_paths);

info = '';

foreach path (check_paths)
{
  file = path + 'rxRPC.dll';

  share = ereg_replace(pattern:'^([A-Za-z]):.*', replace:'\\1$', string:file);
  dll =  ereg_replace(pattern:'^[A-Za-z]:(.*)', replace:'\\1', string:file);

  NetUseDel(close:FALSE);

  rc = NetUseAdd(login:login, password:pass, domain:domain, share:share);
  if (rc != 1)
    continue;

  fh = CreateFile(
    file:dll,
    desired_access:GENERIC_READ,
    file_attributes:FILE_ATTRIBUTE_NORMAL,
    share_mode:FILE_SHARE_READ,
    create_disposition:OPEN_EXISTING
  );

  if (isnull(fh)) continue;

  ver = GetFileVersion(handle:fh);
  if (!isnull(ver))
    version = join(ver, sep:'.');
  else
    continue;

  ret = GetFileVersionEx(handle:fh);
  CloseFile(handle:fh);

  if (!isnull(ret))
    timestamp = int(ret['dwTimeDateStamp']);
  else
    continue;

  fix = '';
  fix_ts = '';

  if (version =~ "^11\.0\.")
  {
    fix = '11.1 SP2 (QI85497) with QO95512';
  }
  else if (version =~ "^11\.1\.")
  {
    # fix: QO95512
    # ts: 1203315832
    # Monday, February 18, 2008 1:23:52 AM EST
    if (timestamp < 1203315832)
    {
      fix = 'QO95512';
      fix_ts = '1203315832';
    }
  }
  else if (version =~ "^11\.5\.")
  {
    # fix: QO95513
    # ts: 1203318093
    # Monday, February 18, 2008 2:01:33 AM EST
    if (timestamp < 1203318093)
    {
      fix = 'QO95513';
      fix_ts = '1203318093';
    }
  }

  if (fix != '')
  {
    info +=  '\n  Path            : ' + file +
             '\n  Version         : ' + version +
             '\n  Timestamp       : ' + timestamp;
    if (fix_ts != '')
      info += '\n  Fixed Timestamp : ' + fix_ts;
    info += '\n  Required Patch  : ' + fix + '\n';
  }
}

NetUseDel();

if (info != '')
{
  if (report_verbosity > 0)
  {
    report = '\nNessus found the following unpatched rxRPC.dll files :\n' + info;
    security_hole(port:port, extra:report);
  }
  else security_hole(port);
  exit(0);
}

exit(0, 'No vulnerable CA products found.');

Saint

  • bid24348
    descriptionBrightStor ARCserve Backup LGServer directory traversal
    idmisc_arcservecategory_lgserverauthuo
    osvdb41350
    titlebrightstor_arcserve_rxrreceivefile
    typeremote
  • bid24348
    descriptionBrightStor ARCserve Backup LGServer rxrLogin buffer overflow
    idmisc_arcservecategory_lgserverauthuo
    osvdb41353
    titlebrightstor_arcserve_rxrlogin
    typeremote
  • bid24348
    descriptionCA ARCserve Backup for Laptops and Desktops LGServer password integer overflow
    idmisc_arcservecategory_lgserverauthuo
    osvdb41352
    titlebrightstor_arcserve_lgserver_password
    typeremote
  • bid24348
    descriptionBrightStor ARCserve Backup LGServer rxsUseLicenseIni buffer overflow
    idmisc_arcservecategory_lgserverauthuo
    osvdb35329
    titlebrightstor_arcserve_rxsuselicenseini
    typeremote

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 24348 CVE(CAN) ID: CVE-2007-3216,CVE-2007-5003,CVE-2007-5004,CVE-2007-5005,CVE-2007-5006 ARCServe Backup for Laptops and Desktops (L&amp;D)是适用于中小业务的ARCServe Backup备份工具版本。 ARCserve L&amp;D在处理RPC接口上的畸形请求数据时存在漏洞,远程攻击者可能利用此漏洞控制服务器或执行目录遍历。 ARCserve L&amp;D使用TCP/1900端口做为RPC接口管理ARCserve L&amp;D服务器,正常的通讯示例如下: 0000000027rxrLogin~~administrator --------------------------------------------- Field 1: 10-digit base10 command length field (&quot;0000000027&quot;) Field 2: RPC command (&quot;rxrLogin&quot;) Field 3: Constant Argument Delimiter (&quot;~~&quot;) Field 4: Argument (&quot;administrator&quot;) #1 认证用户名缓冲区溢出 rxRPC.dll的认证部分(通过TCP/1900访问)中存在栈溢出漏洞。合法的认证报文示例如下: 0000000013rxrLogin~~administrator 认证时使用wsprintfW将administrator参数拷贝到了栈上0x1AC大小的缓冲区,但没有执行字符串长度检查,如果在第一个认证请求中发送了超长用户名的话就可以触发可利用的溢出。 #2 认证口令缓冲区溢出 rxRPC.dll的认证部分存在栈溢出漏洞。带有口令的合法认证请求示例如下: 1: 0000000030rxrLogin~~administrator~~0000200 2: MyPasswordIs1234 第一个rxrLogin请求的第二个参数定义了下一个请求中所要发送口令的长度。尽管已经验证了第二个请求中的口令字符串长度为正确的长度,但没有对口令长度执行边界检查。如果在第二个请求中的超长口令指定了超长口令长度的话,就会溢出口令字符串目的地所使用的栈缓冲区。 #3 认证口令整数溢出 rxRPC.dll的认证部分存在栈溢出漏洞。带有无效口令的合法认证请求示例如下: 1: 0000000030rxrLogin~~administrator~~18 2: 000000000000000000 加密的无效口令可能导致可利用的情况: .text: 00231F24 mov cl, [esi+8] .text: 00231F27 and ecx, 0x0F .text: 00231F2A add esp, 8 .text: 00231F2D dec ecx ; XXXX Integer Overflow If ECX = 0 .text: 00231F2E mov [esp+0x7C+var_6C], eax .text: 00231F32 mov dwPasswordCopyLength, ecx .text: 00231F38 mov eax, ecx .text: 00231F3A lea esi, [esp+0x7C+var_6C] .text: 00231F3E mov edi, ebx .text: 00231F40 shr ecx, 2 .text: 00231F43 rep movs ; XXXX EXCEPTION: HITS PAGE BOUNDARY XXXX 源缓冲区中的数据包含有大量不可控的数据,但还存在用户名的拷贝,因此如果在原始报文中指定了超长用户名的话就会覆盖异常处理器。 #4 任意文件上传 rxRPC.dll的未经认证通讯存在任意文件上传漏洞。上传请求的文件示例如下: 1: 0000000056rxrReceiveFileFromServer~~8~~test1234.txt~~4~~3675727989 2: 0000000031~~&lt;file_contents&gt; 请求的第一个参数指定了rxrReceiveFileFromServer的子命令,数字8表示文件会上传到ARCserve L&amp;D的安装目录;第二个参数指定了文件目标名称;第三个参数指定了目标文件的长度;第五个参数指定了入站文件的CRC32哈希。 但rxRPC.dll没有防范通过子函数8的目录遍历,因此如果文件名中包含有“..\”的话,就可能导致以系统级权限向任意目录写入任意文件。 #5 多个类似的缓冲区溢出 有八个通过TCP/1900端口可访问的函数中存在缓冲区溢出,示例如下: rxsUseLicenseIni~~&lt;overflow&gt; rxsLicGetSiteId~~&lt;overflow&gt; rxsGetLogFileNames~~&lt;overflow&gt;~~40000 rxsGetBackupLog~~aa~~&lt;overflow&gt;~~40000 rxsBackupComplete~~aa~~aa~~aa~~&lt;overflow&gt;~~aa rxsSetDataGrowthScheduleAndFilter~~aa~~aa~~aa~~aa~~&lt;overflow&gt; rxsSetDefaultConfigName~~&lt;overflow&gt; rxrSetMessageLogSettings~~65~~45~~79~~65~~&lt;overflow&gt;~~52~65~73~65~61~72~63~68~21 Computer Associates Protection Suites r2 Computer Associates ARCserve Backup (L&amp;D) r4.0 Computer Associates ARCserve Backup (L&amp;D) r11.5 Computer Associates ARCserve Backup (L&amp;D) r11.1 SP2 Computer Associates ARCserve Backup (L&amp;D) r11.1 SP1 Computer Associates ARCserve Backup (L&amp;D) r11.1 Computer Associates ARCserve Backup (L&amp;D) r11.0 Computer Associates Desktop Management Suite 11.2 Computer Associates Desktop Management Suite 11.1 Computer Associates Desktop Management Suite 11.0 临时解决方法: * 在主机禁用TCP/1900端口。 厂商补丁: Computer Associates ------------------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href="http://supportconnectw.ca.com/public/sams/lifeguard/infodocs/caarcservebld-securitynotice.asp" target="_blank">http://supportconnectw.ca.com/public/sams/lifeguard/infodocs/caarcservebld-securitynotice.asp</a>
idSSV:2247
last seen2017-11-19
modified2007-09-25
published2007-09-25
reporterRoot
titleCA ARCserve Backup多个远程溢出及目录遍历漏洞