Vulnerabilities > CVE-2007-5003 - Improper Restriction of Operations Within the Bounds of A Memory Buffer 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-119
critical
nessus
exploit available
metasploit

Summary

Multiple stack-based buffer overflows in CA (Computer Associates) BrightStor ARCserve Backup for Laptops and Desktops r11.0 through r11.5 allow remote attackers to execute arbitrary code via a long (1) username or (2) password to the rxrLogin command in rxRPC.dll, or a long (3) username argument to the GetUserInfo function.

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Buffer Overflow via Environment Variables
    This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the attacker finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.
  • Overflow Buffers
    Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an attacker. As a consequence, an attacker is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the attackers' choice.
  • Client-side Injection-induced Buffer Overflow
    This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service.
  • Filter Failure through Buffer Overflow
    In this attack, the idea is to cause an active filter to fail by causing an oversized transaction. An attacker may try to feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered).
  • MIME Conversion
    An attacker exploits a weakness in the MIME conversion routine to cause a buffer overflow and gain control over the mail server machine. The MIME system is designed to allow various different information formats to be interpreted and sent via e-mail. Attack points exist when data are converted to MIME compatible format and back.

Exploit-Db

descriptionCA BrightStor ARCserve for Laptops & Desktops LGServer Buffer Overflow. CVE-2007-5003. Remote exploit for windows platform
idEDB-ID:16411
last seen2016-02-01
modified2010-11-03
published2010-11-03
reportermetasploit
sourcehttps://www.exploit-db.com/download/16411/
titleCA BrightStor ARCserve for Laptops & Desktops LGServer Buffer Overflow

Metasploit

descriptionThis module exploits a stack buffer overflow in Computer Associates BrightStor ARCserve Backup for Laptops & Desktops 11.1. By sending a specially crafted request, an attacker could overflow the buffer and execute arbitrary code.
idMSF:EXPLOIT/WINDOWS/BRIGHTSTOR/LGSERVER_RXRLOGIN
last seen2020-02-17
modified2017-07-24
published2008-05-05
referenceshttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5003
reporterRapid7
sourcehttps://github.com/rapid7/metasploit-framework/blob/master//modules/exploits/windows/brightstor/lgserver_rxrlogin.rb
titleCA BrightStor ARCserve for Laptops and Desktops LGServer Buffer Overflow

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.');

Packetstorm

data sourcehttps://packetstormsecurity.com/files/download/83198/lgserver_rxrlogin.rb.txt
idPACKETSTORM:83198
last seen2016-12-05
published2009-11-26
reporterMC
sourcehttps://packetstormsecurity.com/files/83198/CA-BrightStor-ARCserve-for-Laptops-Desktops-LGServer-Buffer-Overflow.html
titleCA BrightStor ARCserve for Laptops & Desktops LGServer Buffer Overflow

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多个远程溢出及目录遍历漏洞