A vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of Hewlett-Packard OpenView Data Protector. Authentication is not required to exploit this vulnerability. The specific flaw exists within the Cell Manager Database Service, rds.exe, which binds to TCP port 1530.
b35ddf22dfed2acfe23b890459bbb716db5b8a870f760c3daf55fac1b650ebad
TPTI-09-15: HP OpenView Data Protector Cell Manager Heap Overflow Vulnerability
http://dvlabs.tippingpoint.com/advisory/TPTI-09-15
December 17, 2009
-- CVE ID:
CVE-2007-2281
-- Affected Vendors:
Hewlett-Packard
-- Affected Products:
Hewlett-Packard OpenView
-- TippingPoint(TM) IPS Customer Protection:
TippingPoint IPS customers have been protected against this
vulnerability by Digital Vaccine protection filter ID 4730.
For further product information on the TippingPoint IPS, visit:
http://www.tippingpoint.com
-- Vulnerability Details:
This vulnerability allows remote attackers to execute arbitrary code on
vulnerable installations of Hewlett-Packard OpenView Data Protector.
Authentication is not required to exploit this vulnerability.
The specific flaw exists within the Cell Manager Database Service,
rds.exe, which binds to TCP port 1530. The service receives socket data
via _ncp32._NtrpTCPReceiveMsg() in the following format:
[0xB6298C23][4-byte size][....][data]
The specified size parameter is subsequently used as the size parameter
to the memory allocation routines _rm32.rm_getMem(). Due to a lack of
sanity checking, values between 0xFFFFFFF8 and 0xFFFFFFFF result in an
integer overflow and therefore an under allocated heap buffer. The
following excerpt demonstrates this problem:
10004A57 mov eax, [ebp+arg_0] ; specified size
10004A5A add eax, 8 ; integer overflow
10004A5D push eax
10004A5E call ds:__imp__malloc
The original packet data is later written to the under allocated buffer
using a size specifier equal to the number of bytes actually received as
the following excerpt from _ncp32._NtrpTCPReceiveMsg() shows:
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
This issue can be exploited to overwrite a specified DWORD of memory and
further lead to arbitrary code execution.
-- Vendor Response:
-- Disclosure Timeline:
2006-10-10 - Vulnerability reported to vendor
2009-12-17 - Coordinated public release of advisory
-- Credit:
This vulnerability was discovered by:
* Pedram Amini, TippingPoint DVLabs
* Anonymous