BrightStor ARCserve Backup可为各种平台的服务器提供备份和恢复保护功能。 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...
BrightStor ARCserve Backup可为各种平台的服务器提供备份和恢复保护功能。 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\n\" 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