hpopenview-multi.txt

2008-04-08T00:00:00
ID PACKETSTORM:65300
Type packetstorm
Reporter Luigi Auriemma
Modified 2008-04-08T00:00:00

Description

                                        
                                            `  
#######################################################################  
  
Luigi Auriemma  
  
Application: HP OpenView Network Node Manager  
http://www.openview.hp.com/products/nnm/  
Versions: <= 7.53  
Platforms: Windows (tested), Solaris, Linux, HP-UX  
Bugs: A] format string in ovalarmsrv  
B] multiple buffer-overflows in ovalarmsrv  
C] Denial of Service in ovalarmsrv  
Exploitation: remote  
Date: 07 Apr 2008  
Author: Luigi Auriemma  
e-mail: aluigi@autistici.org  
web: aluigi.org  
  
  
#######################################################################  
  
  
1) Introduction  
2) Bugs  
3) The Code  
4) Fix  
  
  
#######################################################################  
  
===============  
1) Introduction  
===============  
  
  
>From vendor's website:  
OpenView NNM "automates the process of developing a hyper-accurate  
topology of your physical network, virtual network services and the  
complex relationships between them. It then uses that topology as the  
basis for intelligent root cause analysis to enhance network  
availability and performance."  
  
  
#######################################################################  
  
=======  
2) Bugs  
=======  
  
------------------------------  
A] format string in ovalarmsrv  
------------------------------  
  
The ovalarmsrv.exe process listening on port 2953 is affected by a  
format string vulnerability caused by the calling of ov.fprintf_new  
(which then calls vsprintf) using the final message without a format  
argument:  
  
"Connection Refused; Data in listener port corrupt: ATTACKER_STRING"  
  
  
------------------------------------------  
B] multiple buffer-overflows in ovalarmsrv  
------------------------------------------  
  
The same process listens also on port 2954 where are handled some types  
of requests using specific sscanf formats:  
  
REQUEST_SEV_CHANGE (47): "%d %d %d %[^\n]"  
REQUEST_SAVE_STATE (61): "%d %[^\n]s"  
REQUEST_LOCAL (66): "%d"  
REQUEST_RESTORE_STATE (62): "%d %s"  
REQUEST_SAVE_DIR (63):  
  
As visible by the previous format arguments there are no checks on the  
length of the client string handled by the requests 47, 61 and 62 which  
can be used to exploit a stack based buffer-overflow vulnerability  
using a string parameter longer than 512 bytes.  
  
  
----------------------------------  
C] Denial of Service in ovalarmsrv  
----------------------------------  
  
Another problem of the ovalarmsrv service is that it can be easily  
freezed with CPU at 100% and without the possibility of handling  
further requests on port 2953/2954 simply sending some invalid values.  
  
  
#######################################################################  
  
===========  
3) The Code  
===========  
  
  
A]  
echo %n%n%s%n%n%s | nc SERVER 2953 -v -v  
  
B]  
echo 62 AAAAAAAAAAAAA...512_'A's...AAAAAAAAAAAAA | nc SERVER 2954 -v -v  
  
C]  
echo 47 1 2 what_you_want | nc SERVER 2954 -v -v -w 1  
  
  
#######################################################################  
  
======  
4) Fix  
======  
  
  
No fix  
  
  
#######################################################################  
  
  
---   
Luigi Auriemma  
http://aluigi.org  
`