OpenCMS <= 7.5.3 multiple vulnerabilities Name: OpenCMS <= 7.5.3 multiple vulnerabilities Systems Affected: OpenCMS <= 7.5.3 Severity: High Vendor: http://www.opencms.org Advisory: http://antisnatchor.com/opencms_7.5.3_multiple_vulnerabilities Author: Michele "antisnatchor" Orru (michele.orru AT antisnatchor DOT com) Date: 20110328 I. BACKGROUND OpenCMS from Alkacon Software is a professional, easy to use website content management system. OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently. II. DESCRIPTION Multiple vulnerabilities exist in OpenCMS <= 7.5.3 (latest stable version at the time of writing) that could lead to victim browser pwnage, sensitive information stealing and cookie stealing. III. ANALYSIS a.) Reflected XSS Some authenticated resources are vulnerable to Reflected XSS. The URI /opencms/opencms/system/workplace/commons/report-locks.jsp is vulnerable to Reflected XSS in the following parameters: includerelated, resourcelist. A request like the following will display an alert with the number 666: GET /opencms/opencms/system/workplace/commons/report-locks.jsp?resourcelist=null&resource=/demo_de&includerelated=false"> HTTP/1.1 Host: localhost:8080 [...] The URI /opencms/opencms/system/workplace/views/explorer/contextmenu.jsp is vulnerable too, but we should know a valid resource name to exploit it: this is not too difficult, because knowing the path of an image it would be enough. A request like the following will display an alert with the number 666: GET /opencms/opencms/system/workplace/views/explorer/contextmenu.jsp?resourcelist=/deco_logo.png&acttarget=514f2"> HTTP/1.1 Host: localhost:8080 b.) Cookies issued without HttpOnly flag This issue is even more dangerous because the application don't issue cookies with the HttpOnly flag set: even if there are ways to bypass this security measure, it should always be added to prevent accessing the cookies from JS. c.) Various password field with autocomplete enabled Last but not least, the main login form (URI /opencms/opencms/system/login/) and the change password form (URI /opencms/opencms/system/workplace/commons/preferences.jsp) have autocomplete enabled: thanks to the presence of XSS, an attacker can easily steal the input form values if they have been saved by the victim using the browser "remember password" mechanisms. IV. DETECTION 7.5.3 and earlier versions are vulnerable. V. WORKAROUND Always escape/sanitize the input that comes from the user, because it can be malicious. A good way would be to integrate OWASP ESAPI in OpenCMS, in order to use all the pre-built functions that mitigate XSS, SQLi, XSRF, and so on. VI. VENDOR RESPONSE OpenCms 7.5.4 fixes the issues. VII. CVE INFORMATION No CVE at this time. VIII. DISCLOSURE TIMELINE 20110216 Initial vendor contact 20110216 Initial vendor response 20110328 Version 7.5.4 fixes the issues 20110328 Public disclosure IX. CREDIT Michele "antisnatchor" Orru' X. LEGAL NOTICES Copyright (c) 2011 Michele "antisnatchor" Orru' Permission is granted for the redistribution of this alert electronically. It may not be edited in any way without mine express written consent. If you wish to reprint the whole or any part of this alert in any other medium other than electronically, please email me for permission. Disclaimer: The information in the advisory is believed to be accurate at the time of publishing based on currently available information. Use of the information constitutes acceptance for use in an AS IS condition. There are no warranties with regard to this information. Neither the author nor the publisher accepts any liability for any direct, indirect, or consequential loss or damage arising from use of, or reliance on, this information.