HP OpenView Storage Data Protector是美国惠普(HP)公司的一套可扩展的数据管理解决方案。该方案能够实现基于磁盘或磁带的高性能备份和恢复功能,并确保业务连续性、集成惠普存储硬件和管理解决方案。 OpenView Storage Data Protector默认绑定在TCP 1530端口上的Cell Manager Database服务(rds.exe)中存在堆溢出漏洞。该服务通过_ncp32._NtrpTCPReceiveMsg()接收以下格式的套接字数据: [0xB6298C23][4-byte size][....][data] 之后将指定的size参数用作了内存分配例程_rm32.rm_getMem()的大小参数。由于缺少过滤检查,0xFFFFFFF8到0xFFFFFFFF之间的值就会导致整数溢出,分配不充分的堆缓冲区: 10004A57 mov eax, [ebp+arg_0] ; specified size 10004A5A add eax, 8 ; integer overflow 10004A5D push eax 10004A5E call ds:__imp__malloc 之后将原始报文数据写入到了不充分的缓冲区中,如_ncp32._NtrpTCPReceiveMsg()中所示: 002F2E77 mov eax, [ebp+received_length] 002F2E7A push eax ; size_t 002F2E7B mov ecx, [ebp+received_data] 002F2E7E push ecx ; src 002F2E7F mov edx, [ebp+allocated_buffer] 002F2E82 mov eax, [edx] 002F2E84 push eax ; dst 002F2E85 call _memcpy 攻击者可以利用这个漏洞覆盖内存指定的DWORD,导致执行任意代码。
HP OpenView Storage Data Protector是美国惠普(HP)公司的一套可扩展的数据管理解决方案。该方案能够实现基于磁盘或磁带的高性能备份和恢复功能,并确保业务连续性、集成惠普存储硬件和管理解决方案。 OpenView Storage Data Protector默认绑定在TCP 1530端口上的Cell Manager Database服务(rds.exe)中存在堆溢出漏洞。该服务通过_ncp32._NtrpTCPReceiveMsg()接收以下格式的套接字数据: [0xB6298C23][4-byte size][....][data] 之后将指定的size参数用作了内存分配例程_rm32.rm_getMem()的大小参数。由于缺少过滤检查,0xFFFFFFF8到0xFFFFFFFF之间的值就会导致整数溢出,分配不充分的堆缓冲区: 10004A57 mov eax, [ebp+arg_0] ; specified size 10004A5A add eax, 8 ; integer overflow 10004A5D push eax 10004A5E call ds:__imp__malloc 之后将原始报文数据写入到了不充分的缓冲区中,如_ncp32._NtrpTCPReceiveMsg()中所示: 002F2E77 mov eax, [ebp+received_length] 002F2E7A push eax ; size_t 002F2E7B mov ecx, [ebp+received_data] 002F2E7E push ecx ; src 002F2E7F mov edx, [ebp+allocated_buffer] 002F2E82 mov eax, [edx] 002F2E84 push eax ; dst 002F2E85 call _memcpy 攻击者可以利用这个漏洞覆盖内存指定的DWORD,导致执行任意代码。