How to Detect Vulnerability CVE-2020-24602?

Cyber Security Works discovered a new zero-day vulnerability, CVE-2020-24602 in Ignite Realtime Openfire 4.5.1. Openfire (formerly Wildfire). Openfire is a cross-platform real-time collaboration server based on the XMPP protocol. The vulnerability was discovered by CSW Security Researcher on Feb 5 2020.

Vulnerability Detection

CVE-2020-24602 was detected manually using the burp suite tool. In the Openfire application, the search functionality in the admin account is vulnerable to reflected cross-site scripting attacks due to missing input validation and lack of output encoding.

Disclosure 

The vulnerability was disclosed to Openfire on Feb 5, 2020. The vendor responded and released a patch on March 6, 2020, to mitigate this vulnerability.

Timeline

Date Description
Feb 4, 2020 Vulnerability discovered by CSW Security Researcher.
Feb 5,  2020 Reported to Vendor
Feb 6, 2020 The Vendor confirmed the vulnerability
Feb 13, 2020 Follow up with vendor for fix release
Mar 13, 2020 Follow up with Vendor for fix release
Mar 6, 2020 Vendor responded fix released and confirmed changes will be part of Openfire 4.5.1
Aug 24, 2020 CVE assigned
Sep 1, 2020 Vendor updated CVE

Vulnerability Analysis

CVE-2020-24602 is a Reflected cross-site scripting vulnerability in Openfire Product (Openfire version 4.5.1). A cross-site scripting (XSS) attack can cause arbitrary code (javascript) to run in a user’s browser while the browser is connected to a trusted web site. The application becomes an attack vehicle by targeting the users. XSS payload executes whenever the user views the crafted POST request with XSS Payload in Openfire 4.5.0 Product.

Proof of Concept

Product: Openfire Product

Vendor: Ignite Realtime

Product version: Openfire version 4.5.1

Privilege: admin

Request type: GET

Vulnerable URL: http://localhost:9090/server-properties.jsp,

http://localhost:9090/security-audit-viewer.jsp

Vulnerable Parameter: “searchName”,” searchValue”, “searchDescription”, “searchDefaultValue”, “searchPlugin”, “searchDescription” and “searchDynamic” a

Steps to Reproduce:

Issue 01: Reflected Cross-Site Scripting

Step 1: Log in to the application (admin) through this URL in Firefox.

Step 2: Navigate to this URL and press ALT+SHIFT+X to execute the malicious javascript in the browser.

Similarly, add XSS payload ‘+accesskey=’X’+onclick=’alert(document.cookie) to the other vulnerable variables “searchName”,” searchValue”, “searchDescription”, searchDefaultValue”, “searchPlugin”,“searchDescription” and “searchDynamic” in formid ‘paginationForm’ which reflects in the browser.

Figure 1: Injected XSS payload ‘+accesskey=’X’+onclick=’alert(document.cookie), gets reflected in the browser response.

Mitigation

We recommend the following fixes to this vulnerability

  • Perform context-sensitive encoding of untrusted input before it is echoed back to a browser by using an encoding library

  • Implement input validation for special characters on all the variables reflecting the browser and storing it in the database

  • Implement client-side validation

Impact 

If this vulnerability is exploited successfully, it may result in the stealing of cookies, disclosure of end-user files, and redirection of the user to another page or site.

Recommendation

Based on the CSW team’s recommendations, Ignite Realtime Openfire executed a validation on their end to mitigate this vulnerability.

https://issues.igniterealtime.org/browse/OF-1963

Share This Post On