BUGTRAQ ID: 37386
CVE(CAN) ID: CVE-2007-2281
HP OpenView Storage Data Protector是可扩展的数据管理解决方案,实现基于磁盘或磁带的高性能备份和恢复功能。
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 6.0
HP OpenView Storage Data Protector 5.5
厂商补丁:
HP已经为此发布了一个安全公告(HPSBMA02252)以及相应补丁:
HPSBMA02252:SSRT061258, SSRT061259 rev.1 - HP OpenView Storage Data Protector, Remote Arbitrary Code Execution
链接:http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c01124817&printver=true