Vulnerabilities > CVE-2007-5004 - Numeric Errors vulnerability in multiple products

047910
CVSS 9.3 - CRITICAL
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
network
broadcom
ca
CWE-189
critical
nessus

Summary

Integer overflow in CA (Computer Associates) BrightStor ARCserve Backup for Laptops and Desktops r11.0 through r11.5 allows remote attackers to execute arbitrary code via a long username and a certain "useless" password.

Common Weakness Enumeration (CWE)

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