CVE:CVE-2006-5142
CNNVD:CNNVD-200610-162
CA BrightStor ARCserve Backup是美国CA公司的一款商用备份软件。
BrightStor ARCserve Backup的Discovery服务(casdscsvc.exe)在处理TCP/41523端口上所接收到的请求时存在缓冲区错误漏洞，远程攻击者可能利用此漏洞在服务器上执行任意指令。
当该服务在处理通过名为CheyenneDS的邮槽所接收到的超长消息时，由于在调用CreateMailslot过程中没有提供明确的MaxMessageSize，攻击者可以触发可利用的栈溢出。
创建邮槽过程如下：
   casdscsvc.exe -> Asbrdcst.dll
   20C14E8C push 0                  ; lpSecurityAttributes
   20C14E8E push 0                  ; lReadTimeout
   20C14E90 push 0                  ; nMaxMessageSize
   20C14E92 push offset Name        ; "\\.\mailslot\CheyenneDS"
   20C14E97 stosb
   20C14E98 call ds:CreateMailslotA
   20C14E9E cmp eax, INVALID_HANDLE_VALUE
   20C14EA1 mov mailslot_handle, eax
请注意没有指定明确的MaxMessageSize。之后从4k的缓冲区读取了邮槽句柄，并且将所读取的数据传送给了使用1k大小缓冲区的vsprintf调用。
   casdscsvc.exe -> Asbrdcst.dll
   20C15024 mov eax, mailslot_handle
   20C15029 lea edx, [esp+1044h+Buffer_4k]
   20C1502D push ecx                          ; nNumberOfBytesToRead
   20C1502E push edx                          ; lpBuffer
   20C1502F push eax                          ; hFile
   20C15030 call edi ; ReadFile
   20C15032 test eax, eax
   20C15034 jz  short read_failed
   20C15036 lea ecx, [esp+3Dh]
   20C1503A push ecx                          ; char
   20C1503B push offset str_ReadmailslotS     ; "ReadMailSlot: %s
"
   20C15040 call not_interesting_call_to_vsnprtinf
   20C15045 add esp, 8
   20C15048 lea edx, [esp+3Dh]
   20C1504C push edx                          ; va_list
   20C1504D push offset str_ReadmailslotS_0   ; "ReadMailSlot: %s"
   20C15052 push 0                            ; for_debug_log
   20C15054 call vsprintf_into_1024_stack_buf_and_debug_log
solution:Upgrade broadcom brightstor_arcserve_backup to a higher version than 11.5,and avoid the version 11.5