Synopsis
CVE-2017-14351
A remote unauthenticated attacker could execute arbitrary code through a Java deserialization vulnerability in UCMDB CM. A serialized object sent to /onyx-oo-9.0-webapp/remoting/OOService in an HTTP POST request will be deserialized without any type of validation. An attacker can exploit this vulnerability for code execution due to the presence of Apache Commons Collections 3.2 and Apache Commmons BeanUtils on the classpath. The following is a stack trace generated when exploiting the target with CommonsBeanutils1.Jun 20, 2017 12:01:38 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [remoting] in context with path [/onyx-oo-9.0-webapp] threw exception [Request processing failed; nested exception is java.lang.ClassCastException: java.lang.reflect.InvocationTargetException] with root cause java.lang.ClassCastException: java.lang.reflect.InvocationTargetException at org.apache.commons.beanutils.BeanComparator.compare(BeanComparator.java:155) at java.util.PriorityQueue.siftDownUsingComparator(PriorityQueue.java:699) at java.util.PriorityQueue.siftDown(PriorityQueue.java:667) at java.util.PriorityQueue.heapify(PriorityQueue.java:713) at java.util.PriorityQueue.readObject(PriorityQueue.java:773) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1872) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) at org.springframework.remoting.rmi.RemoteInvocationSerializingExporter.doReadRemoteInvocation(RemoteInvocationSerializingExporter.java:124) at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.readRemoteInvocation(HttpInvokerServiceExporter.java:116) at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.readRemoteInvocation(HttpInvokerServiceExporter.java:95) at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:72) at com.hp.onyx.commons.utils.spring.remoting.ExtensibleHttpInvokerServiceExporter.handleRequest(ExtensibleHttpInvokerServiceExporter.java:24) at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
CVE-2017-14353
A remote unauthenticated attacker could execute arbitrary code through a Java deserialization vulnerability in UCMDB. A serialized object sent to /mam-collectors/collectorsResults in an HTTP POST request will be deserialized given the correct parameters. An attacker can exploit this vulnerability for code execution due to the presence of Apache Commmons BeanUtils on the classpath. The following is the URL used to test for this vulnerability in hp_ucmdb_server_cve-2017-14353.nasl:/mam-collectors/collectorsResults?cmd=process+results&SessionCustomerId=1&versionNum=10.20.480&isZipped=false
CVE-2017-14354
The UCMDB login page is vulnerable to a reflected XSS vulnerability. The following URL demonstrates this:http://ubuntu.westeros:8080/ucmdb-ui/login_page.jsp?forwarURlForLoginPageParam=http://ubuntu.westeros:8180/cnc/&product-name=%3Cscript%3Ealert(%22lolwat%22)%3C/script%3E&product-id=cm
Solution
Follow the upgrade guide provided by HPE in their advisory.Additional References
https://softwaresupport.hpe.com/km/KM02977984https://softwaresupport.hpe.com/km/KM02968622
https://www.auscert.org.au/bulletins/53150
Disclosure Timeline
All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.
Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.
For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.
If you have questions or corrections about this advisory, please email [email protected]